From 96bebdfa2a66ea63e31d573f00be233db73472cf Mon Sep 17 00:00:00 2001 From: Remco Date: Tue, 20 Jan 2026 17:26:56 +0100 Subject: [PATCH] Update EditUser.php --- .../Resources/User/Users/Pages/EditUser.php | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) 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 dd9fccbbdc..3dbddd9c20 100644 --- a/Updated_Cms/app/Filament/Resources/User/Users/Pages/EditUser.php +++ b/Updated_Cms/app/Filament/Resources/User/Users/Pages/EditUser.php @@ -29,7 +29,7 @@ class EditUser extends EditRecord #[\Override] protected function mutateFormDataBeforeFill(array $data): array { - return static::$resource::fillWithOutsideData( + return (array) static::$resource::fillWithOutsideData( $this->getRecord(), $data, ); @@ -37,7 +37,7 @@ class EditUser extends EditRecord public static function getEloquentQuery(): Builder { - return static::getModel()::query()->with(['currencies', 'settings']); + return static::$resource::getModel()::query()->with(['currencies', 'settings']); } /** @@ -76,7 +76,7 @@ class EditUser extends EditRecord return; } - if ($user->online && ! $rcon->isConnected()) { + if (! $rcon->isConnected()) { Notification::make() ->danger() ->title(__('RCON is not enabled!')) @@ -87,8 +87,9 @@ class EditUser extends EditRecord } DB::transaction(function () use ($user, $data, $rcon): void { - if ($data['credits'] != $user->credits) { - $rcon->giveCredits($user, -$user->credits + $data['credits']); + $newCredits = is_numeric($data['credits'] ?? null) ? (int) $data['credits'] : $user->credits; + if ($newCredits !== $user->credits) { + $rcon->giveCredits($user, -$user->credits + $newCredits); } $this->checkUsernameChangedPermission($user, $data, $rcon); @@ -102,11 +103,15 @@ class EditUser extends EditRecord { $user->currencies->each(function (UserCurrency $currency) use ($data, $user): void { $updatedCurrencyAmount = $data["currency_{$currency->type}"] ?? $currency->amount; - if ($updatedCurrencyAmount == $currency->amount) { + if (! is_numeric($updatedCurrencyAmount)) { + return; + } + $updatedCurrencyAmount = (int) $updatedCurrencyAmount; + if ($updatedCurrencyAmount === (int) $currency->amount) { return; } - $updated = $user->currencies()->where('type', $currency->type)->update(['amount' => (int) $updatedCurrencyAmount]); + $updated = $user->currencies()->where('type', $currency->type)->update(['amount' => $updatedCurrencyAmount]); if ($updated) { activity() @@ -124,7 +129,7 @@ class EditUser extends EditRecord }); if ($user->settings) { - $user->settings->update(['can_change_name' => $data['allow_change_username'] ? '1' : '0']); + $user->settings->update(['can_change_name' => !empty($data['allow_change_username']) ? '1' : '0']); } } @@ -175,12 +180,13 @@ class EditUser extends EditRecord private function treatChangedUserRank(\App\Models\User $user, array $data, RconService $rcon): void { - if ($data['rank'] == $user->rank) { + $newRank = is_numeric($data['rank'] ?? null) ? (int) $data['rank'] : $user->rank; + if ($newRank === $user->rank) { return; } $authUser = auth()->user(); $authRank = $authUser instanceof \App\Models\User ? $authUser->rank : 0; - if ($data['rank'] > $authRank) { + if ($newRank > $authRank) { return; } @@ -195,7 +201,7 @@ class EditUser extends EditRecord } if (! $user->online) { - $user->update(['rank' => $data['rank']]); + $user->update(['rank' => $newRank]); return; } @@ -204,12 +210,13 @@ class EditUser extends EditRecord \Illuminate\Support\Sleep::sleep(2); $rcon->disconnectUser($user); - $rcon->setRank($user, (int) $data['rank']); + $rcon->setRank($user, $newRank); } private function treatChangedUserMotto(\App\Models\User $user, array $data, RconService $rcon): void { - if ($data['motto'] == $user->motto) { + $newMotto = is_string($data['motto'] ?? null) ? $data['motto'] : $user->motto; + if ($newMotto === $user->motto) { return; } @@ -224,12 +231,12 @@ class EditUser extends EditRecord } if (! $user->online) { - $user->update(['motto' => $data['motto']]); + $user->update(['motto' => $newMotto]); return; } - $rcon->setMotto($user, is_string($data['motto'] ?? null) ? $data['motto'] : ''); + $rcon->setMotto($user, $newMotto); $rcon->alertUser($user, __('Your motto has been changed by a staff member.')); } }