fix(auth): enforce password and agent role boundaries

This commit is contained in:
wchino
2026-07-21 23:41:18 +08:00
parent fb15c64d9b
commit 457d2cc9e5
7 changed files with 135 additions and 19 deletions

View File

@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Api\V1\Player;
use App\Support\ApiResponse;
use App\Services\AuditLogger;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
use App\Services\Player\PlayerPasswordService;
use App\Http\Requests\Player\PlayerPasswordUpdateRequest;
@@ -19,22 +20,26 @@ final class PlayerPasswordUpdateController extends Controller
$player = $request->lotteryPlayer();
abort_if($player === null, 500, 'lottery_player missing');
$updated = $passwords->change(
$player,
(string) $request->validated('current_password'),
(string) $request->validated('password'),
);
$updated = DB::transaction(function () use ($passwords, $player, $request) {
$updated = $passwords->change(
$player,
(string) $request->validated('current_password'),
(string) $request->validated('password'),
);
AuditLogger::recordForPlayer(
$updated,
$request,
'player_account',
'change_password',
'player',
(string) $updated->id,
null,
['native_token_version' => (int) $updated->native_token_version],
);
AuditLogger::recordForPlayer(
$updated,
$request,
'player_account',
'change_password',
'player',
(string) $updated->id,
null,
['native_token_version' => (int) $updated->native_token_version],
);
return $updated;
});
return ApiResponse::success(['password_changed' => true], request: $request);
}