From 4de08ff2f2f3258d17ca87a6137250c870ba30d6 Mon Sep 17 00:00:00 2001 From: ncoronel Date: Fri, 14 Aug 2026 08:51:31 -0300 Subject: [PATCH] refactor(auth): simplify password reset attempt handling logic and improve code readability --- .../Auth/Services/PasswordLoginService.php | 31 +++++++++---------- .../Services/ResetPasswordAttemptService.php | 9 ++---- .../Services/NotificationMailService.php | 5 ++- 3 files changed, 20 insertions(+), 25 deletions(-) diff --git a/app/Domains/Auth/Services/PasswordLoginService.php b/app/Domains/Auth/Services/PasswordLoginService.php index 151cd21..4f79943 100644 --- a/app/Domains/Auth/Services/PasswordLoginService.php +++ b/app/Domains/Auth/Services/PasswordLoginService.php @@ -236,8 +236,7 @@ class PasswordLoginService CarbonImmutable $now, string $tenantCode, string $passwordResetChannel, - ): void - { + ): void { $windowMinutes = max(1, (int) config('login-security.attempt_window_minutes')); $maxAttempts = max(1, (int) config('login-security.max_attempts')); $lockMinutes = max(1, (int) config('login-security.lock_minutes')); @@ -260,23 +259,23 @@ class PasswordLoginService if ($attempts >= $maxAttempts && $previousAttempts < $maxAttempts) { try { - match ($passwordResetChannel) { - PasswordResetRequested::CHANNEL_ADMINAPP => - $this->resetPasswordAttemptService->createForAdminAppEmail( - $user->email, - ResetPasswordAttempt::REASON_ACCOUNT_LOCKED, - ), - PasswordResetRequested::CHANNEL_SCANNER => - $this->resetPasswordAttemptService->createForScannerEmail( - $user->email, - ResetPasswordAttempt::REASON_ACCOUNT_LOCKED, - ), - default => $this->resetPasswordAttemptService->createForEmail( + if ($passwordResetChannel === PasswordResetRequested::CHANNEL_ADMINAPP) { + $this->resetPasswordAttemptService->createForAdminAppEmail( + $user->email, + ResetPasswordAttempt::REASON_ACCOUNT_LOCKED, + ); + } elseif ($passwordResetChannel === PasswordResetRequested::CHANNEL_SCANNER) { + $this->resetPasswordAttemptService->createForScannerEmail( + $user->email, + ResetPasswordAttempt::REASON_ACCOUNT_LOCKED, + ); + } else { + $this->resetPasswordAttemptService->createForEmail( $user->email, $tenantCode, ResetPasswordAttempt::REASON_ACCOUNT_LOCKED, - ), - }; + ); + } } catch (\Throwable $e) { Log::error('Failed to trigger reset password on account lock', [ 'user_id' => $user->id, diff --git a/app/Domains/Auth/Services/ResetPasswordAttemptService.php b/app/Domains/Auth/Services/ResetPasswordAttemptService.php index f558b3c..1a0e92f 100644 --- a/app/Domains/Auth/Services/ResetPasswordAttemptService.php +++ b/app/Domains/Auth/Services/ResetPasswordAttemptService.php @@ -16,8 +16,7 @@ class ResetPasswordAttemptService string $email, string $tenantCode, string $reason = ResetPasswordAttempt::REASON_MANUAL, - ): void - { + ): void { $emailFingerprint = $this->emailFingerprint($email); try { @@ -54,8 +53,7 @@ class ResetPasswordAttemptService public function createForAdminAppEmail( string $email, string $reason = ResetPasswordAttempt::REASON_MANUAL, - ): void - { + ): void { $emailFingerprint = $this->emailFingerprint($email); try { @@ -103,8 +101,7 @@ class ResetPasswordAttemptService public function createForScannerEmail( string $email, string $reason = ResetPasswordAttempt::REASON_MANUAL, - ): void - { + ): void { $emailFingerprint = $this->emailFingerprint($email); try { diff --git a/app/Domains/Notification/Services/NotificationMailService.php b/app/Domains/Notification/Services/NotificationMailService.php index 2fc9f0a..4bb364f 100644 --- a/app/Domains/Notification/Services/NotificationMailService.php +++ b/app/Domains/Notification/Services/NotificationMailService.php @@ -4,8 +4,8 @@ namespace App\Domains\Notification\Services; use App\Domains\Auth\Models\ResetPasswordAttempt; use App\Domains\Auth\Models\User; -use App\Domains\Notification\Events\PasswordResetRequested; use App\Domains\Integration\Services\MailService; +use App\Domains\Notification\Events\PasswordResetRequested; use App\Domains\Purchase\Models\Purchase; use App\Domains\Tenant\Models\Tenant; use App\Domains\Ticket\Models\Ticket; @@ -36,8 +36,7 @@ class NotificationMailService int $attemptId, string $tenantCode, string $channel = PasswordResetRequested::CHANNEL_STOREFRONT, - ): void - { + ): void { $tenant = Tenant::query() ->with('websiteType') ->where('codigo', $tenantCode)