mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-06 02:33:48 +00:00
bulk-operations v0.1 user_delete,guest_delete BE
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
20
database/factories/FileFactory.php
Normal file
20
database/factories/FileFactory.php
Normal 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()
|
||||
];
|
||||
});
|
||||
17
database/factories/FolderFactory.php
Normal file
17
database/factories/FolderFactory.php
Normal 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
70
env.testing
Normal 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
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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
59
tests/Unit/BulkdTest.php
Normal 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);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user