Remove duplicated activity.read & use relations in EditUser (#1165)

This commit is contained in:
MartinOscar 2025-03-27 15:40:19 +01:00 committed by GitHub
parent ec6529ac4c
commit 42706dba14
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 45 additions and 24 deletions

View File

@ -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'),
]),
]),
]),

View File

@ -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'))