diff --git a/src/App/Providers/AuthServiceProvider.php b/src/App/Providers/AuthServiceProvider.php index 35ef3eb5..ccdeeaf3 100644 --- a/src/App/Providers/AuthServiceProvider.php +++ b/src/App/Providers/AuthServiceProvider.php @@ -18,7 +18,7 @@ class AuthServiceProvider extends ServiceProvider * @var array */ protected $policies = [ - // 'App\Model' => 'App\Policies\ModelPolicy', + // ]; /** @@ -55,9 +55,7 @@ class AuthServiceProvider extends ServiceProvider private function share_guard(Share $share, Folder | File $item): bool { - $isOwner = $share->user_id === $item->user_id; - - if (! $share->is_protected && $isOwner) { + if (! $share->is_protected && $share->user_id === $item->user_id) { return true; } @@ -80,7 +78,7 @@ class AuthServiceProvider extends ServiceProvider return false; } - return $isOwner; + return $share->user_id === $item->user_id; } private function team_member_guard(Folder | File $item, ?User $user, $ability): bool diff --git a/src/Domain/Folders/Models/Folder.php b/src/Domain/Folders/Models/Folder.php index 9e171644..4943b64a 100644 --- a/src/Domain/Folders/Models/Folder.php +++ b/src/Domain/Folders/Models/Folder.php @@ -201,11 +201,6 @@ class Folder extends Model return $this->hasMany(Folder::class, 'id', 'parent_id'); } - public function teamRoot(): HasMany - { - return $this->parents()->with('teamRoot'); - } - public function getLatestParent() { if ($this->parent) { diff --git a/src/Domain/Teams/Controllers/TeamFoldersController.php b/src/Domain/Teams/Controllers/TeamFoldersController.php index 911dec38..efe5be49 100644 --- a/src/Domain/Teams/Controllers/TeamFoldersController.php +++ b/src/Domain/Teams/Controllers/TeamFoldersController.php @@ -1,6 +1,7 @@ where('team_folder', ! Str::isUuid($id)) ->where('user_id', Auth::id()) ->sortable() ->get(); - if ($requestedFolder) { - // Get root team folder - $teamRootIdResults = recursiveFind( - $requestedFolder->teamRoot->toArray(), - 'id' - ); - - $teamRootId = end($teamRootIdResults); - - $teamRootFolder = $teamRootId - ? Folder::findOrFail($teamRootId) - : $requestedFolder; - - // Get files - $files = File::where('parent_id', $rootId) + if ($id) { + $files = File::where('parent_id', $id) ->where('user_id', Auth::id()) ->sortable() ->get(); @@ -63,9 +47,9 @@ class TeamFoldersController extends Controller // Collect folders and files to single array return [ 'folders' => new FolderCollection($folders), - 'files' => new FilesCollection($files), - 'root' => $requestedFolder ? new FolderResource($requestedFolder) : null, - 'teamFolder' => $teamRootFolder ? new FolderResource($teamRootFolder) : null, + 'files' => isset($files) ? new FilesCollection($files) : new FilesCollection([]), + 'root' => $id ? new FolderResource(Folder::findOrFail($id)) : null, + 'teamFolder' => $id ? new FolderResource(Folder::findOrFail($id)->getLatestParent()) : null, ]; } diff --git a/tests/Domain/Teams/TeamsTest.php b/tests/Domain/Teams/TeamsTest.php index 42e81517..9d85ca33 100644 --- a/tests/Domain/Teams/TeamsTest.php +++ b/tests/Domain/Teams/TeamsTest.php @@ -32,9 +32,9 @@ class TeamsTest extends TestCase 'parent_id' => $level_1->id, ]); - $teamRoot = recursiveFind($level_2->teamRoot->toArray(), 'id'); + $teamRoot = $level_2->getLatestParent(); - $this->assertEquals($teamFolder->id, end($teamRoot)); + $this->assertEquals($teamFolder->id, $teamRoot->id); } /**