{{-- Carte « Sécurité du compte » — réutilisée pour les commerçants et les managers. Paramètres : - $partner : App\Models\Partner - $subject : App\Models\User (commerçant ou manager) - $subjectKey : 'user' | 'manager' (clé route + clé include modales) - $abilityPrefix : 'partner_users' | 'partner_managers' - $modalsPartial : nom de la vue contenant les modales déjà câblées - $activeTrustedDevicesCount : int - $activeSessionsCount : int|null (null si SESSION_DRIVER != database) - $sessionDriver : string - $wrapInCard : bool (default true) — rendre le wrapper card+header. À passer false quand la carte est intégrée dans un tab-pane. --}} @php $twoFactorStatus = $subject->twoFactorStatusFor($partner); $hasSecret = ! is_null($subject->two_factor_confirmed_at); $isLocked = $subject->password_locked_at !== null; $sessionsAvailable = $activeSessionsCount !== null; $failedAttempts = (int) ($subject->password_failed_attempts ?? 0); $twoFactorLockout = $subject->twoFactorLockout; $twoFactorLocked = $twoFactorLockout?->locked_until?->isFuture() ?? false; $twoFactorFailedAttempts = (int) ($twoFactorLockout?->failed_attempts_24h ?? 0); $wrapInCard = $wrapInCard ?? true; @endphp @if($wrapInCard)
{{ __('security.account.healthy') }} @if($failedAttempts > 0) ({{ trans_choice('security.account.failed_attempts', $failedAttempts, ['count' => $failedAttempts]) }}) @endif
@endif{{ __('security.two_factor_lockout.healthy') }} @if($twoFactorFailedAttempts > 0) ({{ trans_choice('security.two_factor_lockout.failed_attempts', $twoFactorFailedAttempts, ['count' => $twoFactorFailedAttempts]) }}) @endif
@endif{{ __('security.section.reset_2fa_help') }}