diff --git a/app/Http/Controllers/FileFunctions/EditItemsController.php b/app/Http/Controllers/FileFunctions/EditItemsController.php index adb7a684..36b901cb 100644 --- a/app/Http/Controllers/FileFunctions/EditItemsController.php +++ b/app/Http/Controllers/FileFunctions/EditItemsController.php @@ -168,41 +168,45 @@ class EditItemsController extends Controller * @return ResponseFactory|\Illuminate\Http\Response * @throws Exception */ - public function user_delete_item(DeleteItemRequest $request, $unique_id) + public function user_delete_item(DeleteItemRequest $request) { // Demo preview if (is_demo(Auth::id())) { return Demo::response_204(); } - // Check permission to delete item for authenticated editor - if ($request->user()->tokenCan('editor')) { + foreach($request->input('data') as $file){ + $unique_id = $file['unique_id']; - // Prevent force delete for non-master users - if ($request->input('data.force_delete')) abort('401'); + // Check permission to delete item for authenticated editor + if ($request->user()->tokenCan('editor')) { - // check if shared_token cookie exist - if (!$request->hasCookie('shared_token')) abort('401'); + // Prevent force delete for non-master users + if ($file['force_delete']) abort('401'); - // Get shared token - $shared = get_shared($request->cookie('shared_token')); + // check if shared_token cookie exist + if (!$request->hasCookie('shared_token')) abort('401'); - // Get file|folder item - $item = get_item($request->input('data.type'), $unique_id, Auth::id()); + // Get shared token + $shared = get_shared($request->cookie('shared_token')); - // Check access to requested directory - if ($request->input('data.type') === 'folder') { - Guardian::check_item_access($item->unique_id, $shared); - } else { - Guardian::check_item_access($item->folder_id, $shared); + // Get file|folder item + $item = get_item($file['type'], $unique_id, Auth::id()); + + // Check access to requested directory + if ($file['type'] === 'folder') { + Guardian::check_item_access($item->unique_id, $shared); + } else { + Guardian::check_item_access($item->folder_id, $shared); + } } - } - // Delete item - Editor::delete_item($request, $unique_id); + // Delete item + Editor::delete_item($file, $unique_id); // Return response - return response(null, 204); + } + return response(null, 204); } /** @@ -214,7 +218,7 @@ class EditItemsController extends Controller * @return ResponseFactory|\Illuminate\Http\Response * @throws Exception */ - public function guest_delete_item(DeleteItemRequest $request, $unique_id, $token) + public function guest_delete_item(DeleteItemRequest $request, $token) { // Get shared record $shared = get_shared($token); @@ -224,22 +228,26 @@ class EditItemsController extends Controller return Demo::response_204(); } + // Check shared permission if (!is_editor($shared)) abort(403); + + foreach($request->input('data') as $file){ + $unique_id = $file['unique_id']; - // Get file|folder item - $item = get_item($request->input('data.type'), $unique_id, $shared->user_id); + // Get file|folder item + $item = get_item($file['type'], $unique_id, $shared->user_id); - // Check access to requested item - if ($request->input('data.type') === 'folder') { - Guardian::check_item_access($item->unique_id, $shared); - } else { - Guardian::check_item_access($item->folder_id, $shared); + // Check access to requested item + if ($file['type'] === 'folder') { + Guardian::check_item_access($item->unique_id, $shared); + } else { + Guardian::check_item_access($item->folder_id, $shared); + } + + // Delete item + Editor::delete_item($file, $unique_id, $shared); } - - // Delete item - Editor::delete_item($request, $unique_id, $shared); - // Return response return response(null, 204); } diff --git a/app/Http/Requests/FileFunctions/DeleteItemRequest.php b/app/Http/Requests/FileFunctions/DeleteItemRequest.php index 7288b9b3..f5364598 100644 --- a/app/Http/Requests/FileFunctions/DeleteItemRequest.php +++ b/app/Http/Requests/FileFunctions/DeleteItemRequest.php @@ -25,8 +25,9 @@ class DeleteItemRequest extends FormRequest public function rules() { return [ - 'data.type' => 'required|string', - 'data.force_delete' => 'required|boolean', + 'data[*].force_delete' => 'required|boolean', + 'data[*].type' => 'required|string', + 'data[*].unique_id' => 'required|numeric' ]; } } diff --git a/app/Http/Tools/Editor.php b/app/Http/Tools/Editor.php index f7456cfa..63c5ab67 100644 --- a/app/Http/Tools/Editor.php +++ b/app/Http/Tools/Editor.php @@ -86,13 +86,13 @@ class Editor * @param null $shared * @throws \Exception */ - public static function delete_item($request, $unique_id, $shared = null) + public static function delete_item($file, $unique_id, $shared = null) { // Get user id $user = is_null($shared) ? Auth::user() : User::findOrFail($shared->user_id); // Delete folder - if ($request->input('data.type') === 'folder') { + if ($file['type'] === 'folder') { // Get folder $folder = FileManagerFolder::withTrashed() @@ -113,7 +113,7 @@ class Editor } // Force delete children files - if ($request->input('data.force_delete')) { + if ($file['force_delete']) { // Get children folder ids $child_folders = filter_folders_ids($folder->trashed_folders, 'unique_id'); @@ -142,7 +142,7 @@ class Editor } // Soft delete items - if (!$request->input('data.force_delete')) { + if (!$file['force_delete']) { // Remove folder from user favourites $user->favourite_folders()->detach($unique_id); @@ -153,7 +153,7 @@ class Editor } // Delete item - if ($request->input('data.type') !== 'folder') { + if ($file['type'] !== 'folder') { // Get file $file = FileManagerFile::withTrashed() @@ -173,7 +173,7 @@ class Editor } // Force delete file - if ($request->input('data.force_delete')) { + if ($file['force_delete']) { // Delete file Storage::delete('/file-manager/' . $file->basename); @@ -186,7 +186,7 @@ class Editor } // Soft delete file - if (!$request->input('data.force_delete')) { + if (!$file['force_delete']) { // Soft delete file $file->delete(); diff --git a/database/factories/FileFactory.php b/database/factories/FileFactory.php new file mode 100644 index 00000000..1adeb39d --- /dev/null +++ b/database/factories/FileFactory.php @@ -0,0 +1,20 @@ +define(FileManagerFile::class, function (Faker $faker) { + return [ + 'unique_id' => $faker->randomDigit, + 'user_id' => 0, + 'folder_id' => 0, + 'name' => $faker->firstName, + 'basename' => $faker->lastName, + 'user_scope' => 'master', + 'updated_at' => Carbon::now(), + 'created_at' => Carbon::now() + ]; +}); diff --git a/database/factories/FolderFactory.php b/database/factories/FolderFactory.php new file mode 100644 index 00000000..cca6abbc --- /dev/null +++ b/database/factories/FolderFactory.php @@ -0,0 +1,17 @@ +define(FileManagerFolder::class, function (Faker $faker) { + return [ + 'id' => $faker->randomDigit, + 'unique_id' => $faker->randomDigit, + 'user_id' => 1, + 'parent_id' => 0, + 'name' => $faker->sentence, + 'type' => 'folder', + ]; +}); diff --git a/env.testing b/env.testing new file mode 100644 index 00000000..7313089c --- /dev/null +++ b/env.testing @@ -0,0 +1,70 @@ +APP_NAME=vueFileManager +APP_ENV=local +APP_KEY=base64:v+s0R2C5q8jYySj3uwrKA8KH8c9JBIZTdXqB2ytk4j8= +APP_DEBUG=true +APP_URL=http://localhost +APP_DEMO=false + +LOG_CHANNEL=stack + + +DB_CONNECTION=sqlite +DB_HOST=null +DB_PORT=null +DB_DATABASE=database/database.sqlite +DB_USERNAME=null +DB_PASSWORD=null + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +QUEUE_CONNECTION=sync +SESSION_DRIVER=file +SESSION_LIFETIME=120 + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_DRIVER=smtp +MAIL_HOST=sty +MAIL_PORT=3254 +MAIL_USERNAME=Milos +MAIL_PASSWORD=milos123 +MAIL_ENCRYPTION=tls +MAIL_FROM_ADDRESS="${MAIL_USERNAME}" +MAIL_FROM_NAME="${MAIL_USERNAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION= +AWS_BUCKET= + +DO_SPACES_KEY= +DO_SPACES_SECRET= +DO_SPACES_ENDPOINT= +DO_SPACES_REGION= +DO_SPACES_BUCKET= + +WASABI_KEY= +WASABI_SECRET= +WASABI_ENDPOINT= +WASABI_REGION= +WASABI_BUCKET= + +BACKBLAZE_KEY= +BACKBLAZE_SECRET= +BACKBLAZE_ENDPOINT= +BACKBLAZE_REGION= +BACKBLAZE_BUCKET= + +PASSPORT_CLIENT_ID=1 +PASSPORT_CLIENT_SECRET=TqSdKJUbCbC7g5To3Clriw9BMblef0nIdEaI81Q5 + +APP_DEPLOY_SECRET= + +CASHIER_LOGGER=stack +CASHIER_CURRENCY= +STRIPE_KEY= +STRIPE_SECRET= +STRIPE_WEBHOOK_SECRET= +CASHIER_PAYMENT_NOTIFICATION=App\Notifications\ConfirmPayment \ No newline at end of file diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 8912a998..72769d19 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,66 +1,78 @@ { - "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js?id=672eab0f8b83a0f093b2", - "/js/main.js": "/js/main.js?id=be4675e4b2ba6c8d5b16", - "/css/app.css": "/css/app.css?id=dbf49843b327d3936c06", - "/chunks/admin.js": "/chunks/admin.js?id=65cdb5879b738d1bb7da", - "/chunks/admin-account.js": "/chunks/admin-account.js?id=d57f947c48eae9842bc6", - "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=0e5aac05a973a1d9e76e", - "/chunks/app-billings.js": "/chunks/app-billings.js?id=17caa870f73bcafdeff1", - "/chunks/app-email.js": "/chunks/app-email.js?id=e50ebc47b24caa846aa3", - "/chunks/app-index.js": "/chunks/app-index.js?id=d3625f0e8803a8d5b12d", - "/chunks/app-others.js": "/chunks/app-others.js?id=8f204d97be6647862243", - "/chunks/app-payments.js": "/chunks/app-payments.js?id=99b253b06c57ae0e3cc7", - "/chunks/app-settings.js": "/chunks/app-settings.js?id=6068bd4129e09a4bf276", - "/chunks/app-setup.js": "/chunks/app-setup.js?id=363575cd65e91260409f", - "/chunks/billings-detail.js": "/chunks/billings-detail.js?id=fbda0f1bd41623537110", - "/chunks/contact-us.js": "/chunks/contact-us.js?id=7400115344a3863ea065", - "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=41304a313b8a36da9522", - "/chunks/dashboard.js": "/chunks/dashboard.js?id=2f8a0dba4b14e418cbfd", - "/chunks/database.js": "/chunks/database.js?id=1710c57ab33413b2eb7e", - "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=54e4a6f69884acbf5cc7", - "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=258c62c452d7e88bc4bc", - "/chunks/files.js": "/chunks/files.js?id=105ea80c073dfc2ce20a", - "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=807f27043bc0e14daa93", - "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=f4f710ac0aa4333d599e", - "/chunks/invoices.js": "/chunks/invoices.js?id=e26d9ca0f28b23051bfe", - "/chunks/landing-page.js": "/chunks/landing-page.js?id=3a95c477a5cd5688ec3b", - "/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=2149c06d866b105b57ea", - "/chunks/page-edit.js": "/chunks/page-edit.js?id=e9251eff3d6147b7f5c2", - "/chunks/pages.js": "/chunks/pages.js?id=57a0ef8e53ed7c01c096", - "/chunks/plan.js": "/chunks/plan.js?id=2ea3bf59468d31d4d71c", - "/chunks/plan-create.js": "/chunks/plan-create.js?id=191bb55963510b65b6f1", - "/chunks/plan-delete.js": "/chunks/plan-delete.js?id=efb0f4f5275a5b3d110a", - "/chunks/plan-settings.js": "/chunks/plan-settings.js?id=969a56b1069e3cc048e8", - "/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=f5c201e2318f482dac36", - "/chunks/plans.js": "/chunks/plans.js?id=d9a5809e7c672fc553be", - "/chunks/profile.js": "/chunks/profile.js?id=e9b06617b0854135dd3a", - "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=e32f460dcc70b3a3bb0a", - "/chunks/settings.js": "/chunks/settings.js?id=2278398f918ff5312e99", - "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=0b075c965095f2764336", - "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=9519f1b35ccf6f0db7df", - "/chunks/settings-password.js": "/chunks/settings-password.js?id=302cd462eb17b4a105be", - "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=2e589d528ab2704dd129", - "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=227c82f766029db0f6d3", - "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=497dfceab2f01c6744ed", - "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=47090233afc7b0cdf855", - "/chunks/shared-files.js": "/chunks/shared-files.js?id=35f1e385813ac63a64d2", - "/chunks/shared-page.js": "/chunks/shared-page.js?id=0f40befe046bacc5e9ca", - "/chunks/sign-in.js": "/chunks/sign-in.js?id=8056cba749857555dcf7", - "/chunks/sign-up.js": "/chunks/sign-up.js?id=a85bb0187ac4ed1bc3b1", - "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=8fe21e4b3a8f0e466a7c", - "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=80a64f290209c1e01092", - "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=c406373c1a536ffb8d0d", - "/chunks/trash.js": "/chunks/trash.js?id=6a370954c7dbcc4cccf4", - "/chunks/upgrade.js": "/chunks/upgrade.js?id=1c4a840e46610b06929e", - "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=2b8f52b5e72fd2af2107", - "/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=ee1be6b23ae9873a5a84", - "/chunks/user.js": "/chunks/user.js?id=afb3323d832525a07f86", - "/chunks/user-create.js": "/chunks/user-create.js?id=fcd5d38e88588c65bb48", - "/chunks/user-delete.js": "/chunks/user-delete.js?id=efb09441e6ee702f9ff2", - "/chunks/user-detail.js": "/chunks/user-detail.js?id=f4e6f78f874c80c679d0", - "/chunks/user-invoices.js": "/chunks/user-invoices.js?id=8b0ab00e8c2e93d0d649", - "/chunks/user-password.js": "/chunks/user-password.js?id=0e6f613b6150f934e72b", - "/chunks/user-storage.js": "/chunks/user-storage.js?id=4b1e6945dfdbb9913d30", - "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=26b1a5385afb20bdd82c", - "/chunks/users.js": "/chunks/users.js?id=92c97e045b9ac4bbb941" + "/js/main.js": "/js/main.js", + "/css/app.css": "/css/app.css", + "/chunks/admin.js": "/chunks/admin.js?id=16d6432e9a5122f06bc1", + "/chunks/admin-account.js": "/chunks/admin-account.js?id=d6a0e09f9c1124d0e95b", + "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~2d9ff916.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~2d9ff916.js?id=f3069a222eca5dd0270e", + "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~3b77a26e.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~3b77a26e.js?id=77bca29833216da797df", + "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/trash.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/trash.js?id=4b2aa345198e20c36733", + "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=592d97039a1bbd16df80", + "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js?id=764ee2f54c93ebf508f2", + "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=f96dc1a0da58b6c0831f", + "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js?id=484b015de14dc4d7d07e", + "/chunks/app-billings.js": "/chunks/app-billings.js?id=56dbf797866f9127c903", + "/chunks/app-email.js": "/chunks/app-email.js?id=37d70468d3ede6a2d5c0", + "/chunks/app-index.js": "/chunks/app-index.js?id=93085b19900c2dfedad7", + "/chunks/app-others.js": "/chunks/app-others.js?id=ab73cb26e7b7daab5b9c", + "/chunks/app-payments.js": "/chunks/app-payments.js?id=58a7319b7ec435ba7905", + "/chunks/app-settings.js": "/chunks/app-settings.js?id=be61c2db5a777bc9564c", + "/chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan~chunk~8a0e1d25.js": "/chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan~chunk~8a0e1d25.js?id=d453042783979afa9e8d", + "/chunks/app-setup.js": "/chunks/app-setup.js?id=e4595e91c026d18927e9", + "/chunks/billings-detail.js": "/chunks/billings-detail.js?id=f9b824ca07091c2187aa", + "/chunks/contact-us.js": "/chunks/contact-us.js?id=11a9f28eaf6c9bab655d", + "/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js": "/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js?id=1676f9a1ac9602026b2d", + "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=b803bda9c2efa524336e", + "/chunks/dashboard.js": "/chunks/dashboard.js?id=df10b61625ff1634b8ea", + "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js": "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js?id=17649685610016a8501c", + "/chunks/database.js": "/chunks/database.js?id=5bf7fc8614772da0cada", + "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=80fe4ed4501414037387", + "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=72998371a634f818fdfd", + "/chunks/files.js": "/chunks/files.js?id=3b608964757ef9dda7c6", + "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/trash~chunks~3ea7670b.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/trash~chunks~3ea7670b.js?id=93090f58b637eeb86ded", + "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js?id=b42e4150955dc325f60b", + "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=f78ef9c665238797e92a", + "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=4fb27bef1f7595b94047", + "/chunks/invoices.js": "/chunks/invoices.js?id=95740d62a1ed253ef2ff", + "/chunks/landing-page.js": "/chunks/landing-page.js?id=9d0143a75b260733a95b", + "/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=f108b84833dbdcc4a0a1", + "/chunks/page-edit.js": "/chunks/page-edit.js?id=d048988f094763896f23", + "/chunks/pages.js": "/chunks/pages.js?id=982c94f46a1e931cd8f7", + "/chunks/plan.js": "/chunks/plan.js?id=6c60686496e9a0d96e55", + "/chunks/plan-create.js": "/chunks/plan-create.js?id=37f649fd35f8694e789e", + "/chunks/plan-delete.js": "/chunks/plan-delete.js?id=826ce0b3d11a75829ea2", + "/chunks/plan-settings.js": "/chunks/plan-settings.js?id=713906a8ef4e03a33ff0", + "/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=42d3dd48dfda0d4e6278", + "/chunks/plans.js": "/chunks/plans.js?id=4fabc44f63ad4ddabedb", + "/chunks/profile.js": "/chunks/profile.js?id=0490d3980377f3ba4b81", + "/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=b4ce31d48aed294bb1a3", + "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=18f721619181c56cf5e9", + "/chunks/settings.js": "/chunks/settings.js?id=de3822cf8dae469fae99", + "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=e9ee54062a8ca38c2b33", + "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=1fc098872c98559521df", + "/chunks/settings-password.js": "/chunks/settings-password.js?id=98c11b2ba7f2c8db3920", + "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=d936d92ceffa336dea5e", + "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=de2b4e704b8dac7325c0", + "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=f9b950116e40f4d368db", + "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=566d3b75aa7be8b55c46", + "/chunks/shared-files.js": "/chunks/shared-files.js?id=65524b12f56ec717d06a", + "/chunks/shared-page.js": "/chunks/shared-page.js?id=03fb9ac34058853cb252", + "/chunks/sign-in.js": "/chunks/sign-in.js?id=699b1e6c46292afa065e", + "/chunks/sign-up.js": "/chunks/sign-up.js?id=a1d9c6f58ca8f28a5f03", + "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=c81344269cc0c768db1e", + "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=abf25cdc7b4746716a7c", + "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=f5d6cc03c0f58e26d6b7", + "/chunks/trash.js": "/chunks/trash.js?id=00b36bf2be8f9f4090c7", + "/chunks/upgrade.js": "/chunks/upgrade.js?id=c76158bf59a8f0423856", + "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=90a5109adcc087430775", + "/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=481a4ddb0c6d0f9de447", + "/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=cb7ec4c31c0b6d4534ec", + "/chunks/user.js": "/chunks/user.js?id=a32165809363978b63bc", + "/chunks/user-create.js": "/chunks/user-create.js?id=1818be930822a1b4476d", + "/chunks/user-delete.js": "/chunks/user-delete.js?id=c4029ce89944bd04b63f", + "/chunks/user-detail.js": "/chunks/user-detail.js?id=08c6b4ef87afe5953675", + "/chunks/user-invoices.js": "/chunks/user-invoices.js?id=78bd8d965d9e5e7c31ae", + "/chunks/user-password.js": "/chunks/user-password.js?id=4d9e46c209e88d5f47ab", + "/chunks/user-storage.js": "/chunks/user-storage.js?id=fafc88cef747e911e17b", + "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=106a3b5ccd6d467ac524", + "/chunks/users.js": "/chunks/users.js?id=f213041c6b6095cd03e1" } diff --git a/routes/api.php b/routes/api.php index 14a85305..a4ed95a6 100644 --- a/routes/api.php +++ b/routes/api.php @@ -44,7 +44,7 @@ Route::group(['middleware' => ['api'], 'prefix' => 'public'], function () { Route::group(['middleware' => ['api']], function () { // Edit Functions - Route::delete('/remove-item/{unique_id}/public/{token}', 'FileFunctions\EditItemsController@guest_delete_item'); + Route::post('/remove-item/public/{token}', 'FileFunctions\EditItemsController@guest_delete_item'); Route::patch('/rename-item/{unique_id}/public/{token}', 'FileFunctions\EditItemsController@guest_rename_item'); Route::post('/create-folder/public/{token}', 'FileFunctions\EditItemsController@guest_create_folder'); Route::patch('/move/{unique_id}/public/{token}', 'FileFunctions\EditItemsController@guest_move'); @@ -184,7 +184,7 @@ Route::group(['middleware' => ['auth:api', 'auth.shared', 'scope:visitor,editor' Route::group(['middleware' => ['auth:api', 'auth.shared', 'auth.master', 'scope:master,editor']], function () { // Edit items - Route::delete('/remove-item/{unique_id}', 'FileFunctions\EditItemsController@user_delete_item'); + Route::post('/remove-item', 'FileFunctions\EditItemsController@user_delete_item'); Route::patch('/rename-item/{unique_id}', 'FileFunctions\EditItemsController@user_rename_item'); Route::post('/create-folder', 'FileFunctions\EditItemsController@user_create_folder'); Route::patch('/move/{unique_id}', 'FileFunctions\EditItemsController@user_move'); diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php deleted file mode 100644 index cdb51119..00000000 --- a/tests/Feature/ExampleTest.php +++ /dev/null @@ -1,21 +0,0 @@ -get('/'); - - $response->assertStatus(200); - } -} diff --git a/tests/Unit/BulkdTest.php b/tests/Unit/BulkdTest.php new file mode 100644 index 00000000..8c4bbb44 --- /dev/null +++ b/tests/Unit/BulkdTest.php @@ -0,0 +1,59 @@ +withoutExceptionHandling(); + + $data ='{ + "data": [ + { + "force_delete": false, + "type": "file", + "unique_id": 0 + }, + { + "force_delete": false, + "type": "file", + "unique_id": 1 + }, + { + "force_delete": false, + "type": "file", + "unique_id": 2 + } + ] + }'; + + $user = factory(User::class)->create(); + + factory(FileManagerFile::class, 3)->create(); + + $this->assertDatabaseCount('file_manager_files', 3); + + $this->actingAs($user)->withoutMiddleware()->json('POST','/api/remove-item', json_decode($data , true)) + ->assertStatus(201); + + // $this->assertDatabaseCount('file_manager_files', 3); + + } +} diff --git a/tests/Unit/ExampleTest.php b/tests/Unit/ExampleTest.php deleted file mode 100644 index 358cfc88..00000000 --- a/tests/Unit/ExampleTest.php +++ /dev/null @@ -1,18 +0,0 @@ -assertTrue(true); - } -}