Update EditUser.php

This commit is contained in:
Remco
2026-01-20 17:26:56 +01:00
parent 1fa6b4dc60
commit 96bebdfa2a
@@ -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.'));
}
}