mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-05 18:23:48 +00:00
- when member upload files or create folder in team folder, the true owner of the content is creator of team member. That means the upload bandwidth and storage go to creator responsibility
This commit is contained in:
@@ -158,7 +158,6 @@ class BrowseTest extends TestCase
|
||||
'name' => 'Document',
|
||||
'basename' => 'document.pdf',
|
||||
'mimetype' => 'application/pdf',
|
||||
'author' => 'user',
|
||||
'type' => 'file',
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
@@ -199,7 +198,6 @@ class BrowseTest extends TestCase
|
||||
'name' => 'Document 1',
|
||||
'basename' => 'document-1.pdf',
|
||||
'mimetype' => 'application/pdf',
|
||||
'author' => 'user',
|
||||
'type' => 'file',
|
||||
'user_id' => $user->id,
|
||||
'created_at' => now(),
|
||||
@@ -213,7 +211,6 @@ class BrowseTest extends TestCase
|
||||
'name' => 'Document 2',
|
||||
'basename' => 'document-2.pdf',
|
||||
'mimetype' => 'application/pdf',
|
||||
'author' => 'user',
|
||||
'type' => 'file',
|
||||
'user_id' => $user->id,
|
||||
'created_at' => now(),
|
||||
@@ -255,7 +252,6 @@ class BrowseTest extends TestCase
|
||||
'name' => 'Document',
|
||||
'basename' => 'document.pdf',
|
||||
'mimetype' => 'application/pdf',
|
||||
'author' => 'user',
|
||||
'type' => 'file',
|
||||
'user_id' => $user->id,
|
||||
'deleted_at' => now(),
|
||||
|
||||
@@ -158,7 +158,6 @@ class VisitorBrowseTest extends TestCase
|
||||
->create([
|
||||
'parent_id' => $root->id,
|
||||
'name' => 'Documents',
|
||||
'author' => 'user',
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
@@ -168,7 +167,6 @@ class VisitorBrowseTest extends TestCase
|
||||
'name' => 'Document',
|
||||
'basename' => 'document.pdf',
|
||||
'mimetype' => 'application/pdf',
|
||||
'author' => 'user',
|
||||
'type' => 'file',
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
@@ -238,7 +236,6 @@ class VisitorBrowseTest extends TestCase
|
||||
->create([
|
||||
'name' => 'level 2',
|
||||
'parent_id' => $folder_level_1->id,
|
||||
'author' => 'user',
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
@@ -246,7 +243,6 @@ class VisitorBrowseTest extends TestCase
|
||||
->create([
|
||||
'name' => 'level 3',
|
||||
'parent_id' => $folder_level_2->id,
|
||||
'author' => 'user',
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
@@ -254,7 +250,6 @@ class VisitorBrowseTest extends TestCase
|
||||
->create([
|
||||
'name' => 'level 2 Sibling',
|
||||
'parent_id' => $folder_level_1->id,
|
||||
'author' => 'user',
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
|
||||
@@ -306,7 +306,6 @@ class VisitorManipulatingTest extends TestCase
|
||||
$folder = Folder::factory()
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'author' => 'user',
|
||||
]);
|
||||
|
||||
$share = Share::factory()
|
||||
@@ -350,10 +349,6 @@ class VisitorManipulatingTest extends TestCase
|
||||
])->assertStatus(201);
|
||||
}
|
||||
|
||||
$this->assertDatabaseHas('files', [
|
||||
'author' => 'visitor',
|
||||
]);
|
||||
|
||||
$file = File::all()->last();
|
||||
|
||||
Storage::disk('local')
|
||||
|
||||
@@ -420,23 +420,6 @@ class TeamManagementTest extends TestCase
|
||||
'team_folder' => 1,
|
||||
]);
|
||||
|
||||
// Create fake file record
|
||||
File::factory()
|
||||
->create([
|
||||
'name' => 'Member File',
|
||||
'basename' => 'fake-file.zip',
|
||||
'parent_id' => $folder->id,
|
||||
'user_id' => $deletedMember->id,
|
||||
'type' => 'file',
|
||||
]);
|
||||
|
||||
// Create fake file
|
||||
$fakeFile = UploadedFile::fake()
|
||||
->create('fake-file.zip', 2000, 'application/zip');
|
||||
|
||||
// Put fake file into correct directory
|
||||
Storage::putFileAs("files/{$deletedMember->id}", $fakeFile, 'fake-file.zip');
|
||||
|
||||
// Attach members to the team folder
|
||||
DB::table('team_folder_members')
|
||||
->insert([
|
||||
@@ -466,10 +449,6 @@ class TeamManagementTest extends TestCase
|
||||
])
|
||||
->assertCreated();
|
||||
|
||||
// Check if file was moved from member directory to owner directory
|
||||
Storage::assertMissing("files/{$deletedMember->id}/fake-file.zip");
|
||||
Storage::assertExists("files/{$user->id}/fake-file.zip");
|
||||
|
||||
$this
|
||||
->assertDatabaseCount('team_folder_members', 1)
|
||||
->assertDatabaseMissing('team_folder_members', [
|
||||
@@ -709,57 +688,6 @@ class TeamManagementTest extends TestCase
|
||||
'team_folder' => 1,
|
||||
]);
|
||||
|
||||
$folderWithin = Folder::factory()
|
||||
->create([
|
||||
'name' => 'Member Content',
|
||||
'parent_id' => $folder->id,
|
||||
'user_id' => $member->id,
|
||||
'team_folder' => 1,
|
||||
]);
|
||||
|
||||
$file = File::factory()
|
||||
->create([
|
||||
'name' => 'Member File',
|
||||
'basename' => 'fake-file.zip',
|
||||
'parent_id' => $folderWithin->id,
|
||||
'user_id' => $member->id,
|
||||
'type' => 'file',
|
||||
]);
|
||||
|
||||
// Create fake file
|
||||
$fakeFile = UploadedFile::fake()
|
||||
->create('fake-file.zip', 2000, 'application/zip');
|
||||
|
||||
// Put fake file into correct directory
|
||||
Storage::putFileAs("files/$member->id", $fakeFile, 'fake-file.zip');
|
||||
|
||||
File::factory()
|
||||
->create([
|
||||
'name' => 'Good image',
|
||||
'basename' => 'fake-image.jpeg',
|
||||
'parent_id' => $folderWithin->id,
|
||||
'user_id' => $member->id,
|
||||
'type' => 'image',
|
||||
]);
|
||||
|
||||
// Create fake image
|
||||
$fakeFile = UploadedFile::fake()
|
||||
->create('fake-image.jpeg', 2000, 'image/jpeg');
|
||||
|
||||
// Put fake image into correct directory
|
||||
Storage::putFileAs("files/$member->id", $fakeFile, $fakeFile->name);
|
||||
|
||||
$thumbnail_sizes = collect([config('vuefilemanager.image_sizes.later'), config('vuefilemanager.image_sizes.immediately')])->collapse();
|
||||
|
||||
// Create fake image thumbnails
|
||||
$thumbnail_sizes
|
||||
->each(function ($item) use ($member) {
|
||||
$fakeFile = UploadedFile::fake()
|
||||
->create("{$item['name']}-fake-image.jpeg", 2000, 'image/jpeg');
|
||||
|
||||
Storage::putFileAs("files/$member->id", $fakeFile, $fakeFile->name);
|
||||
});
|
||||
|
||||
// add member to the team folder
|
||||
DB::table('team_folder_members')
|
||||
->insert([
|
||||
@@ -775,31 +703,11 @@ class TeamManagementTest extends TestCase
|
||||
->deleteJson("/api/teams/folders/{$folder->id}/leave")
|
||||
->assertNoContent();
|
||||
|
||||
// Check if file was moved from member directory to owner directory
|
||||
Storage::assertMissing("files/$member->id/fake-file.zip");
|
||||
Storage::assertExists("files/$user->id/fake-file.zip");
|
||||
|
||||
// Assert if image thumbnails was moved correctly to the new destination
|
||||
$thumbnail_sizes
|
||||
->each(function ($item) use ($user) {
|
||||
Storage::assertExists("files/$user->id/{$item['name']}-fake-image.jpeg");
|
||||
});
|
||||
|
||||
$this
|
||||
->assertDatabaseMissing('team_folder_members', [
|
||||
'parent_id' => $folder->id,
|
||||
'user_id' => $member->id,
|
||||
'permission' => 'can-edit',
|
||||
])
|
||||
->assertDatabaseHas('files', [
|
||||
'id' => $file->id,
|
||||
'parent_id' => $folderWithin->id,
|
||||
'user_id' => $user->id,
|
||||
])
|
||||
->assertDatabaseHas('folders', [
|
||||
'id' => $folderWithin->id,
|
||||
'parent_id' => $folder->id,
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Domain\Teams;
|
||||
|
||||
use Illuminate\Http\UploadedFile;
|
||||
use Notification;
|
||||
use Tests\TestCase;
|
||||
use App\Users\Models\User;
|
||||
@@ -31,9 +33,8 @@ class TeamsTest extends TestCase
|
||||
'parent_id' => $level_1->id,
|
||||
]);
|
||||
|
||||
$teamRoot = $level_2->getLatestParent();
|
||||
|
||||
$this->assertEquals($teamFolder->id, $teamRoot->id);
|
||||
$this->assertEquals($teamFolder->id, $level_2->getLatestParent()->id);
|
||||
$this->assertEquals($teamFolder->id, $teamFolder->getLatestParent()->id);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -72,6 +73,7 @@ class TeamsTest extends TestCase
|
||||
|
||||
$this
|
||||
->assertDatabaseHas('folders', [
|
||||
'user_id' => $user->id,
|
||||
'name' => 'Company Project',
|
||||
'team_folder' => 1,
|
||||
])
|
||||
@@ -96,6 +98,7 @@ class TeamsTest extends TestCase
|
||||
|
||||
$teamFolder = Folder::factory()
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'team_folder' => 1,
|
||||
]);
|
||||
|
||||
@@ -108,6 +111,7 @@ class TeamsTest extends TestCase
|
||||
->assertStatus(201)
|
||||
->assertJsonFragment([
|
||||
'isTeamFolder' => true,
|
||||
'id' => $user->id,
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -254,4 +258,42 @@ class TeamsTest extends TestCase
|
||||
'id' => $folders[0]->id,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function team_member_upload_new_file()
|
||||
{
|
||||
$file = UploadedFile::fake()
|
||||
->create('fake-file.pdf', 12000000, 'application/pdf');
|
||||
|
||||
$user = User::factory()
|
||||
->hasSettings()
|
||||
->create();
|
||||
|
||||
$member = User::factory()
|
||||
->hasSettings()
|
||||
->create();
|
||||
|
||||
$folder = Folder::factory()
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'team_folder' => 1,
|
||||
]);
|
||||
|
||||
$this
|
||||
->actingAs($member)
|
||||
->postJson('/api/upload', [
|
||||
'filename' => $file->name,
|
||||
'file' => $file,
|
||||
'parent_id' => $folder->id,
|
||||
'path' => "/$file->name",
|
||||
'is_last' => 'true',
|
||||
])->assertStatus(201);
|
||||
|
||||
$this->assertDatabaseHas('files', [
|
||||
'user_id' => $user->id,
|
||||
'creator_id' => $member->id,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user