diff --git a/app/Filament/Server/Resources/UserResource.php b/app/Filament/Server/Resources/UserResource.php index ff3c870ec..660dc77b6 100644 --- a/app/Filament/Server/Resources/UserResource.php +++ b/app/Filament/Server/Resources/UserResource.php @@ -5,7 +5,6 @@ namespace App\Filament\Server\Resources; use App\Filament\Server\Resources\UserResource\Pages; use App\Models\Permission; use App\Models\Server; -use App\Models\Subuser; use App\Models\User; use App\Services\Subusers\SubuserDeletionService; use App\Services\Subusers\SubuserUpdateService; @@ -98,14 +97,14 @@ class UserResource extends Resource TextColumn::make('email') ->searchable(), TextColumn::make('permissions') - ->state(fn (User $user) => count(Subuser::query()->where('user_id', $user->id)->where('server_id', $server->id)->first()->permissions)), + ->state(fn (User $user) => count($server->subusers->where('user_id', $user->id)->first()->permissions)), ]) ->actions([ DeleteAction::make() ->label('Remove User') ->hidden(fn (User $user) => auth()->user()->id === $user->id) ->action(function (User $user, SubuserDeletionService $subuserDeletionService) use ($server) { - $subuser = Subuser::query()->where('user_id', $user->id)->where('server_id', $server->id)->first(); + $subuser = $server->subusers->where('user_id', $user->id)->first(); $subuserDeletionService->handle($subuser, $server); Notification::make() @@ -119,7 +118,7 @@ class UserResource extends Resource ->authorize(fn () => auth()->user()->can(Permission::ACTION_USER_UPDATE, $server)) ->modalHeading(fn (User $user) => 'Editing ' . $user->email) ->action(function (array $data, SubuserUpdateService $subuserUpdateService, User $user) use ($server) { - $subuser = Subuser::query()->where('user_id', $user->id)->where('server_id', $server->id)->first(); + $subuser = $server->subusers->where('user_id', $user->id)->first(); $permissions = collect($data) ->forget('email') @@ -216,7 +215,9 @@ class UserResource extends Resource 'settings' => [ 'rename', 'reinstall', - 'activity', + ], + 'activity' => [ + 'read', ], ]; @@ -243,11 +244,7 @@ class UserResource extends Resource ->schema([ CheckboxList::make('control') ->formatStateUsing(function (User $user, Set $set) use ($server) { - $permissionsArray = Subuser::query() - ->where('user_id', $user->id) - ->where('server_id', $server->id) - ->first() - ->permissions; + $permissionsArray = $server->subusers->where('user_id', $user->id)->first()->permissions; $transformedPermissions = []; @@ -264,6 +261,7 @@ class UserResource extends Resource }) ->bulkToggleable() ->label('') + ->columns(2) ->options([ 'console' => 'Console', 'start' => 'Start', @@ -287,6 +285,7 @@ class UserResource extends Resource CheckboxList::make('user') ->bulkToggleable() ->label('') + ->columns(2) ->options([ 'read' => 'Read', 'create' => 'Create', @@ -310,6 +309,7 @@ class UserResource extends Resource CheckboxList::make('file') ->bulkToggleable() ->label('') + ->columns(2) ->options([ 'read' => 'Read', 'read-content' => 'Read Content', @@ -339,6 +339,7 @@ class UserResource extends Resource CheckboxList::make('backup') ->bulkToggleable() ->label('') + ->columns(2) ->options([ 'read' => 'Read', 'create' => 'Create', @@ -364,6 +365,7 @@ class UserResource extends Resource CheckboxList::make('allocation') ->bulkToggleable() ->label('') + ->columns(2) ->options([ 'read' => 'Read', 'create' => 'Create', @@ -387,6 +389,7 @@ class UserResource extends Resource CheckboxList::make('startup') ->bulkToggleable() ->label('') + ->columns(2) ->options([ 'read' => 'Read', 'update' => 'Update', @@ -408,6 +411,7 @@ class UserResource extends Resource CheckboxList::make('database') ->bulkToggleable() ->label('') + ->columns(2) ->options([ 'read' => 'Read', 'create' => 'Create', @@ -433,6 +437,7 @@ class UserResource extends Resource CheckboxList::make('schedule') ->bulkToggleable() ->label('') + ->columns(2) ->options([ 'read' => 'Read', 'create' => 'Create', @@ -456,15 +461,32 @@ class UserResource extends Resource CheckboxList::make('settings') ->bulkToggleable() ->label('') + ->columns(2) ->options([ 'rename' => 'Rename', 'reinstall' => 'Reinstall', - 'activity' => 'Activity', ]) ->descriptions([ 'rename' => trans('server/users.permissions.setting_rename'), 'reinstall' => trans('server/users.permissions.setting_reinstall'), - 'activity' => trans('server/users.permissions.activity_desc'), + ]), + ]), + ]), + Tab::make('Activity') + ->schema([ + Section::make() + ->description(trans('server/users.permissions.activity_desc')) + ->icon('tabler-stack') + ->schema([ + CheckboxList::make('activity') + ->bulkToggleable() + ->label('') + ->columns(2) + ->options([ + 'read' => 'Read', + ]) + ->descriptions([ + 'read' => trans('server/users.permissions.activity_read'), ]), ]), ]), diff --git a/app/Filament/Server/Resources/UserResource/Pages/ListUsers.php b/app/Filament/Server/Resources/UserResource/Pages/ListUsers.php index 21a82ceee..3ec4611ce 100644 --- a/app/Filament/Server/Resources/UserResource/Pages/ListUsers.php +++ b/app/Filament/Server/Resources/UserResource/Pages/ListUsers.php @@ -16,6 +16,7 @@ use Filament\Forms\Components\CheckboxList; use Filament\Forms\Components\Grid; use Filament\Forms\Components\Section; use Filament\Forms\Components\Tabs; +use Filament\Forms\Components\Tabs\Tab; use Filament\Forms\Components\TextInput; use Filament\Forms\Get; use Filament\Forms\Set; @@ -138,7 +139,7 @@ class ListUsers extends ListRecords Tabs::make() ->columnSpanFull() ->schema([ - Tabs\Tab::make('Console') + Tab::make('Console') ->schema([ Section::make() ->description(trans('server/users.permissions.control_desc')) @@ -162,7 +163,7 @@ class ListUsers extends ListRecords ]), ]), ]), - Tabs\Tab::make('User') + Tab::make('User') ->schema([ Section::make() ->description(trans('server/users.permissions.user_desc')) @@ -186,7 +187,7 @@ class ListUsers extends ListRecords ]), ]), ]), - Tabs\Tab::make('File') + Tab::make('File') ->schema([ Section::make() ->description(trans('server/users.permissions.file_desc')) @@ -216,7 +217,7 @@ class ListUsers extends ListRecords ]), ]), ]), - Tabs\Tab::make('Backup') + Tab::make('Backup') ->schema([ Section::make() ->description(trans('server/users.permissions.backup_desc')) @@ -242,7 +243,7 @@ class ListUsers extends ListRecords ]), ]), ]), - Tabs\Tab::make('Allocation') + Tab::make('Allocation') ->schema([ Section::make() ->description(trans('server/users.permissions.allocation_desc')) @@ -266,7 +267,7 @@ class ListUsers extends ListRecords ]), ]), ]), - Tabs\Tab::make('Startup') + Tab::make('Startup') ->schema([ Section::make() ->description(trans('server/users.permissions.startup_desc')) @@ -288,7 +289,7 @@ class ListUsers extends ListRecords ]), ]), ]), - Tabs\Tab::make('Database') + Tab::make('Database') ->schema([ Section::make() ->description(trans('server/users.permissions.database_desc')) @@ -314,7 +315,7 @@ class ListUsers extends ListRecords ]), ]), ]), - Tabs\Tab::make('Schedule') + Tab::make('Schedule') ->schema([ Section::make() ->description(trans('server/users.permissions.schedule_desc')) @@ -338,7 +339,7 @@ class ListUsers extends ListRecords ]), ]), ]), - Tabs\Tab::make('Settings') + Tab::make('Settings') ->schema([ Section::make() ->description(trans('server/users.permissions.settings_desc')) @@ -351,16 +352,14 @@ class ListUsers extends ListRecords ->options([ 'rename' => 'Rename', 'reinstall' => 'Reinstall', - 'activity' => 'Activity', ]) ->descriptions([ 'rename' => trans('server/users.permissions.setting_rename'), 'reinstall' => trans('server/users.permissions.setting_reinstall'), - 'activity' => trans('server/users.permissions.activity_desc'), ]), ]), ]), - Tabs\Tab::make('Activity') + Tab::make('Activity') ->schema([ Section::make() ->description(trans('server/users.permissions.activity_desc'))