# Blocage de compte utilisateur (guide support)

Ce document explique ce que signifie un compte “bloqué” et comment le déverrouiller via l’interface admin ou la commande Artisan `lnc:unlock-user`.

## Pour un utilisateur (non technique)

Quand un compte est bloqué, la connexion affiche un message du type :
`Ce compte est bloqué suite à trop de tentatives de connexion. Contactez un administrateur.`

Dans ce cas :
1. Informez l’équipe admin
2. Donnez l’email du compte (sans souci des majuscules : l’application traite les emails en minuscule)

Après déblocage, vous pourrez vous reconnecter normalement. Si vous ressaisissez un mot de passe incorrect plusieurs fois, le compte peut à nouveau se bloquer.

## Message “trop de tentatives, réessayez dans X secondes”

Il existe aussi un blocage **temporaire** (anti brute-force) distinct du “compte bloqué”.

Symptôme :
- message du type “Tentatives de connexion trop nombreuses. Veuillez essayer de nouveau dans :seconds secondes.”

Ce message correspond au **throttling** Laravel (`auth.throttle`) : il dépend de l’email et de l’IP, et se débloque automatiquement après un court délai.

## Pour un admin : déblocage via l’interface web

1. Aller sur la page admin : `/admin`
2. Sur le dashboard, repérer la section :
   `Débloquer un compte`
3. Saisir l’email du compte bloqué
4. Cliquer sur `Débloquer`

Le formulaire envoie un `POST` vers la route :
- `POST /admin/users/unlock` (champ `email`)

## Pour un admin : déblocage via la commande Artisan

Commande :
```bash
php artisan lnc:unlock-user "user@exemple.com"
```

Cas possibles :
- Si l’utilisateur n’existe pas : la commande renvoie une erreur `User not found.` et un code retour `1`
- Si le compte n’est pas bloqué : message d’information et code retour `0`
- Si le compte est bloqué : le compte est déverrouillé et la commande affiche `Account unlocked: ...` (code retour `0`)

## Paramètre de configuration (à connaître)

Le nombre de tentatives de connexion échouées autorisées avant blocage dépend de :
- la config `MAX_FAILED_LOGIN_ATTEMPTS` (env)
- default : `10`
- si `MAX_FAILED_LOGIN_ATTEMPTS = 0` : le blocage est désactivé

