DesktopToolbar.vue team members widget resolving

This commit is contained in:
Čarodej
2021-10-22 10:53:04 +02:00
parent cea881ce38
commit 705281325f
8 changed files with 87 additions and 40 deletions
@@ -128,7 +128,7 @@ class SetupDevEnvironment extends Command
collect([
[
'avatar' => 'avatar-02.png',
'email' => 'alice@vuefilemanager.com',
'email' => 'alice@hi5ve.digital',
],
[
'avatar' => 'avatar-03.png',
@@ -801,7 +801,7 @@ class SetupDevEnvironment extends Command
$member = User::whereEmail('howdy@hi5ve.digital')
->first();
$owner = User::whereEmail('alice@vuefilemanager.com')
$owner = User::whereEmail('alice@hi5ve.digital')
->first();
$folder = Folder::factory()
+6 -2
View File
@@ -1,6 +1,7 @@
<?php
namespace App\Providers;
use Auth;
use DB;
use App\Users\Models\User;
use Domain\Files\Models\File;
@@ -89,11 +90,14 @@ class AuthServiceProvider extends ServiceProvider
private function team_member_guard(Folder | File $item, ?User $user, $ability): bool
{
$teamFolder = $item->getLatestParent();
$membership = DB::table('team_folder_members')
->where('parent_id', $item->getLatestParent()->id)
->where('parent_id', $teamFolder->id)
->where('user_id', $user->id)
->first();
return $membership?->permission === $ability;
// check existing members permission or check team folder owner privileges
return $membership?->permission === $ability || $teamFolder->user_id === Auth::id();
}
}
@@ -21,7 +21,7 @@ class DeleteUserDataAction
Storage::deleteDirectory("files/$user->id");
// Delete all user records in database
collect(['folders', 'files', 'user_settings', 'shares', 'favourite_folder', 'zips', 'traffic'])
collect(['folders', 'files', 'user_settings', 'shares', 'favourite_folder', 'traffic'])
->each(function ($table) use ($user) {
DB::table($table)
->whereUserId($user->id)
@@ -28,14 +28,13 @@ class ShareController extends Controller
CreateShareRequest $request,
SendViaEmailAction $sendLinkToEmailAction,
): ShareResource {
$type = $request->input('type') === 'folder' ? 'folder' : 'file';
$item = get_item($request->input('id'), $type);
$item = get_item($request->input('type'), $request->input('id'));
$this->authorize('owner', $item);
$shared = Share::create([
'password' => $request->has('password') ? bcrypt($request->input('password')) : null,
'type' => $type,
'type' => $request->input('type') === 'folder' ? 'folder' : 'file',
'is_protected' => $request->input('isPassword'),
'permission' => $request->input('permission') ?? null,
'expire_in' => $request->input('expiration') ?? null,
@@ -33,13 +33,11 @@ class TeamFoldersController extends Controller
$folders = Folder::where('parent_id', $id)
->where('team_folder', ! Str::isUuid($id))
->where('user_id', Auth::id())
->sortable()
->get();
if ($id) {
$files = File::where('parent_id', $id)
->where('user_id', Auth::id())
->sortable()
->get();
}