added it_delete_multiple_files_in_shared_folder test

This commit is contained in:
Peter Papp
2021-03-10 15:27:35 +01:00
parent 9606d0e7db
commit 2c7cb67e7c
3 changed files with 54 additions and 8 deletions
@@ -241,13 +241,14 @@ class EditItemsController extends Controller
} }
// Check shared permission // Check shared permission
if (!is_editor($shared)) abort(403); if (is_visitor($shared)) {
abort(403);
}
foreach ($request->input('data') as $file) { foreach ($request->items as $file) {
$id = $file['id'];
// Get file|folder item // Get file|folder item
$item = get_item($file['type'], $id, $shared->user_id); $item = get_item($file['type'], $file['id']);
// Check access to requested item // Check access to requested item
if ($file['type'] === 'folder') { if ($file['type'] === 'folder') {
@@ -257,10 +258,10 @@ class EditItemsController extends Controller
} }
// Delete item // Delete item
Editor::delete_item($file, $id, $shared); Editor::delete_item($file, $file['id'], $shared);
} }
// Return response // Return response
return response(null, 204); return response('Done', 204);
} }
/** /**
+1 -2
View File
@@ -373,7 +373,7 @@ class Editor
*/ */
public static function move($request, $to_id) public static function move($request, $to_id)
{ {
foreach ($request->input('items') as $item) { foreach ($request->items as $item) {
// Move folder // Move folder
if ($item['type'] === 'folder') { if ($item['type'] === 'folder') {
@@ -382,7 +382,6 @@ class Editor
->update([ ->update([
'parent_id' => $to_id 'parent_id' => $to_id
]); ]);
} }
// Move file // Move file
+46
View File
@@ -99,6 +99,52 @@ class ShareEditorTest extends TestCase
]); ]);
} }
/**
* @test
*/
public function it_delete_multiple_files_in_shared_folder()
{
$folder = Folder::factory(Folder::class)
->create();
$share = Share::factory(Share::class)
->create([
'item_id' => $folder->id,
'user_id' => $folder->user_id,
'type' => 'folder',
'is_protected' => false,
'permission' => 'editor',
]);
$files = File::factory(File::class)
->count(2)
->create([
'folder_id' => $folder->id
]);
$this->postJson("/api/editor/remove/public/$share->token", [
'items' => [
[
'id' => $files[0]->id,
'type' => 'file',
'force_delete' => false,
],
[
'id' => $files[1]->id,
'type' => 'file',
'force_delete' => false,
],
],
])->assertStatus(204);
$files
->each(function ($file) {
$this->assertSoftDeleted('files', [
'id' => $file->id,
]);
});
}
/** /**
* @test * @test
*/ */