bulk-operations v0.1 user_delete,guest_delete BE

This commit is contained in:
Milos Holba
2020-11-01 19:52:33 +01:00
parent 5be9db83f7
commit 06db522545
11 changed files with 294 additions and 146 deletions

View File

@@ -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);
}

View File

@@ -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'
];
}
}

View File

@@ -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();

View File

@@ -0,0 +1,20 @@
<?php
/** @var \Illuminate\Database\Eloquent\Factory $factory */
use App\FileManagerFile;
use Faker\Generator as Faker;
use Illuminate\Support\Carbon;
$factory->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()
];
});

View File

@@ -0,0 +1,17 @@
<?php
/** @var \Illuminate\Database\Eloquent\Factory $factory */
use App\FileManagerFolder;
use Faker\Generator as Faker;
$factory->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',
];
});

70
env.testing Normal file
View File

@@ -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

View File

@@ -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"
}

View File

@@ -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');

View File

@@ -1,21 +0,0 @@
<?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class ExampleTest extends TestCase
{
/**
* A basic test example.
*
* @return void
*/
public function testBasicTest()
{
$response = $this->get('/');
$response->assertStatus(200);
}
}

59
tests/Unit/BulkdTest.php Normal file
View File

@@ -0,0 +1,59 @@
<?php
namespace Tests\Unit;
use App\User;
// use Illuminate\Foundation\Testing\DatabaseMigrations;
use Tests\TestCase;
use App\FileManagerFile;
use Laravel\Passport\Passport;
use Illuminate\Auth\AuthenticationException;
use Illuminate\Foundation\Testing\RefreshDatabase;
class BulkTest extends TestCase
{
// use DatabaseMigrations;
use RefreshDatabase;
/**
* @test
*/
public function bulk_delete_user ()
{
$this->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);
}
}

View File

@@ -1,18 +0,0 @@
<?php
namespace Tests\Unit;
use PHPUnit\Framework\TestCase;
class ExampleTest extends TestCase
{
/**
* A basic test example.
*
* @return void
*/
public function testBasicTest()
{
$this->assertTrue(true);
}
}