diff --git a/app/Enums/SubuserPermission.php b/app/Enums/SubuserPermission.php index b99ce63b2..ace02086e 100644 --- a/app/Enums/SubuserPermission.php +++ b/app/Enums/SubuserPermission.php @@ -60,6 +60,7 @@ enum SubuserPermission: string case SettingsRename = 'settings.rename'; case SettingsDescription = 'settings.description'; case SettingsReinstall = 'settings.reinstall'; + case SettingsChangeIcon = 'settings.change-icon'; /** @return string[] */ public function split(): array diff --git a/app/Filament/Server/Pages/Settings.php b/app/Filament/Server/Pages/Settings.php index 5e8394a5b..cda96c19c 100644 --- a/app/Filament/Server/Pages/Settings.php +++ b/app/Filament/Server/Pages/Settings.php @@ -81,9 +81,11 @@ class Settings extends ServerFormPage ->imageSize(150) ->columnSpanFull() ->alignJustify(), - UploadIcon::make(), + UploadIcon::make() + ->authorize(fn (Server $server) => user()?->can(SubuserPermission::SettingsChangeIcon, $server)), DeleteIcon::make() - ->iconStoragePath(Server::getIconStoragePath()), + ->iconStoragePath(Server::getIconStoragePath()) + ->authorize(fn (Server $server) => user()?->can(SubuserPermission::SettingsChangeIcon, $server)), ]), TextInput::make('uuid') ->label(trans('server/setting.server_info.uuid')) diff --git a/lang/en/server/user.php b/lang/en/server/user.php index 631bb17fd..5af6b4a6e 100644 --- a/lang/en/server/user.php +++ b/lang/en/server/user.php @@ -52,9 +52,10 @@ return [ 'startup_update' => 'Allows a user to modify the startup variables for the server.', 'startup_docker_image' => 'Allows a user to modify the Docker image used when running the server.', - 'settings_reinstall' => 'Allows a user to trigger a reinstall of this server.', 'settings_rename' => 'Allows a user to rename this server.', 'settings_description' => 'Allows a user to change the description of this server.', + 'settings_reinstall' => 'Allows a user to trigger a reinstall of this server.', + 'settings_change_icon' => 'Allows a user to change the icon of this server.', 'activity_read' => 'Allows a user to view the activity logs for the server.',