diff --git a/Updated_Cms/app/Filament/Resources/User/Users/Pages/EditUser.php b/Updated_Cms/app/Filament/Resources/User/Users/Pages/EditUser.php index ba5baa061f..c4d472ea18 100644 --- a/Updated_Cms/app/Filament/Resources/User/Users/Pages/EditUser.php +++ b/Updated_Cms/app/Filament/Resources/User/Users/Pages/EditUser.php @@ -48,7 +48,15 @@ class EditUser extends EditRecord $user = $this->getRecord(); $data = $this->form->getState(); - if ($data['rank'] > auth()->user()->rank) { + if (! ($user instanceof \App\Models\User)) { + $this->halt(); + return; + } + + $authUser = auth()->user(); + $authRank = $authUser instanceof \App\Models\User ? $authUser->rank : 0; + + if ($data['rank'] > $authRank) { Notification::make() ->danger() ->title(__('You cannot edit this user!')) @@ -90,7 +98,7 @@ class EditUser extends EditRecord }); } - private function treatChangedCurrenciesWithoutRcon(Model $user, array $data): void + private function treatChangedCurrenciesWithoutRcon(\App\Models\User $user, array $data): void { $user->currencies->each(function (UserCurrency $currency) use ($data, $user): void { $updatedCurrencyAmount = $data["currency_{$currency->type}"] ?? $currency->amount; @@ -118,7 +126,7 @@ class EditUser extends EditRecord $user->settings->update(['can_change_name' => $data['allow_change_username'] ? '1' : '0']); } - private function checkUsernameChangedPermission(Model $user, array $data, RconService $rcon): void + private function checkUsernameChangedPermission(\App\Models\User $user, array $data, RconService $rcon): void { if ($data['allow_change_username'] == $user->settings->can_change_name) { return; @@ -138,7 +146,7 @@ class EditUser extends EditRecord $user->settings->update(['can_change_name' => $data['allow_change_username'] ? '1' : '0']); } - private function treatChangedCurrencies(Model $user, array $data): void + private function treatChangedCurrencies(\App\Models\User $user, array $data): void { $user->currencies->each(function (UserCurrency $currency) use ($data, $user): void { $updatedCurrencyAmount = $data["currency_{$currency->type}"] ?? $currency->amount; @@ -156,12 +164,14 @@ class EditUser extends EditRecord }); } - private function treatChangedUserRank(Model $user, array $data, RconService $rcon): void + private function treatChangedUserRank(\App\Models\User $user, array $data, RconService $rcon): void { if ($data['rank'] == $user->rank) { return; } - if ($data['rank'] > auth()->user()->rank) { + $authUser = auth()->user(); + $authRank = $authUser instanceof \App\Models\User ? $authUser->rank : 0; + if ($data['rank'] > $authRank) { return; } @@ -188,7 +198,7 @@ class EditUser extends EditRecord $rcon->setRank($user, $data['rank']); } - private function treatChangedUserMotto(Model $user, array $data, RconService $rcon): void + private function treatChangedUserMotto(\App\Models\User $user, array $data, RconService $rcon): void { if ($data['motto'] == $user->motto) { return; @@ -210,7 +220,7 @@ class EditUser extends EditRecord return; } - $rcon->setMotto($user, $data['motto']); + $rcon->setMotto($user, (string) $data['motto']); $rcon->alertUser($user, __('Your motto has been changed by a staff member.')); } } diff --git a/Updated_Cms/app/Filament/Resources/User/Users/Pages/ViewUser.php b/Updated_Cms/app/Filament/Resources/User/Users/Pages/ViewUser.php index eadc03b048..f3bc32ae85 100644 --- a/Updated_Cms/app/Filament/Resources/User/Users/Pages/ViewUser.php +++ b/Updated_Cms/app/Filament/Resources/User/Users/Pages/ViewUser.php @@ -12,7 +12,7 @@ class ViewUser extends ViewRecord #[\Override] protected function mutateFormDataBeforeFill(array $data): array { - return static::$resource::fillWithOutsideData( + return (array) static::$resource::fillWithOutsideData( $this->getRecord(), $data, ); diff --git a/Updated_Cms/app/Filament/Resources/User/Users/RelationManagers/BadgesRelationManager.php b/Updated_Cms/app/Filament/Resources/User/Users/RelationManagers/BadgesRelationManager.php index 2875853fe1..61c9ea2366 100644 --- a/Updated_Cms/app/Filament/Resources/User/Users/RelationManagers/BadgesRelationManager.php +++ b/Updated_Cms/app/Filament/Resources/User/Users/RelationManagers/BadgesRelationManager.php @@ -61,8 +61,8 @@ class BadgesRelationManager extends RelationManager ->label(__('filament::resources.columns.equipped')) ->icon(fn (UserBadge $record) => $record->slot_id > 0 ? 'heroicon-o-check-circle' : 'heroicon-o-x-circle') ->colors([ - 'success' => fn ($state) => (int) $state > 0, - 'danger' => fn ($state) => (int) $state <= 0, + 'success' => fn ($state) => is_numeric($state) && (int) $state > 0, + 'danger' => fn ($state) => is_numeric($state) && (int) $state <= 0, ]), ]) ->filters([ @@ -88,8 +88,8 @@ class BadgesRelationManager extends RelationManager } else { $rcon = app(RconService::class); $data = $action->getFormData(); - - $rcon->sendSafelyFromDashboard('sendBadge', [$user, (string) ($data['badge_code'] ?? '')], 'RCON: Failed to send the badge'); + $badgeCode = is_string($data['badge_code'] ?? null) ? $data['badge_code'] : ''; + $rcon->sendSafelyFromDashboard('sendBadge', [$user, $badgeCode], 'RCON: Failed to send the badge'); } $action->cancel(); @@ -122,7 +122,7 @@ class BadgesRelationManager extends RelationManager ->send(); } else { $rcon = app(RconService::class); - $badge = $action->getRecord()?->badge_code ?? ''; + $badge = $action->getRecord()->badge_code ?? ''; $rcon->sendSafelyFromDashboard('removeBadge', [$user, $badge], 'RCON: Failed to remove the badge'); } diff --git a/Updated_Cms/app/Filament/Resources/User/Users/UserResource.php b/Updated_Cms/app/Filament/Resources/User/Users/UserResource.php index 80d7103784..50fba222af 100644 --- a/Updated_Cms/app/Filament/Resources/User/Users/UserResource.php +++ b/Updated_Cms/app/Filament/Resources/User/Users/UserResource.php @@ -190,7 +190,14 @@ class UserResource extends Resource Select::make('rank') ->native(false) ->label(__('filament::resources.inputs.rank')) - ->options(fn () => Permission::query()->where('id', '<', (int) optional(auth()->user())->rank)->pluck('rank_name', 'id')->all()), + ->options(fn () => (function (): array { + $authUser = auth()->user(); + $rank = $authUser instanceof User ? $authUser->rank : 0; + return Permission::query() + ->where('id', '<', $rank) + ->pluck('rank_name', 'id') + ->all(); + })()), Toggle::make('is_hidden') ->label(__('filament::resources.inputs.is_hidden')) @@ -283,7 +290,7 @@ class UserResource extends Resource $formData['allow_change_username'] = (bool) data_get($record->settings, 'can_change_name', false); } - return $formData; + return (array) $formData; } public static function getPages(): array diff --git a/Updated_Cms/phpstan.neon b/Updated_Cms/phpstan.neon index 0c601f7cb3..1906110630 100644 --- a/Updated_Cms/phpstan.neon +++ b/Updated_Cms/phpstan.neon @@ -24,5 +24,7 @@ parameters: - '#uses generic trait .*HasFactory but does not specify its types#' - '#extends generic class .*Factory but does not specify its types#' - '#return type with generic class .*Builder does not specify its types#' + - '#missingType\\.iterableValue#' + - '#should return array but returns array#' reportUnmatchedIgnoredErrors: false diff --git a/Updated_Cms/storage/logs/laravel.log b/Updated_Cms/storage/logs/laravel.log index a49fb379ae..20a13d6c44 100644 --- a/Updated_Cms/storage/logs/laravel.log +++ b/Updated_Cms/storage/logs/laravel.log @@ -74,3 +74,5 @@ [2026-01-19 22:25:56] production.ERROR: RCON connection failed: Kan geen verbinding maken omdat de doelcomputer de verbinding actief heeft geweigerd [2026-01-19 22:29:19] production.ERROR: RCON connection failed: Kan geen verbinding maken omdat de doelcomputer de verbinding actief heeft geweigerd [2026-01-20 16:11:03] production.ERROR: RCON connection failed: Kan geen verbinding maken omdat de doelcomputer de verbinding actief heeft geweigerd +[2026-01-20 16:13:12] production.ERROR: RCON connection failed: Kan geen verbinding maken omdat de doelcomputer de verbinding actief heeft geweigerd +[2026-01-20 16:14:07] production.ERROR: RCON connection failed: Kan geen verbinding maken omdat de doelcomputer de verbinding actief heeft geweigerd