# Réinitialisation des mots-de-passe par courriel

## Présentation

LL::NG peut proposer un formulaire de réinitialisation de mot-de-passe pour les utilisateurs qui ont perdu leur mot-de-passe (ce type d'application est également appelée interface de mot-de-passe self-service).

Cinématique :

- L'utilisateur clique sur le lien `Réinitialiser mon mot-de-passe`
- L'utilisateur entre son adresse de courriel (ou une autre information) dans le formulaire de réinitialisation
- LL::NG tente de trouver l'utilisateur dans la base de données avec l'information donnée
- Un courriel avec une valeur est envoyé à l'utilisateur
- L'utilisateur clique sur le lien dans le courriel
- LL::NG valide la valeur et propose un formulaire de changement de mot-de-passe
- L'utilisateur peut choisir un nouveau mot de passe ou demander sa génération
- The new password is sent to user by mail if user ask to generate one, else the mail only confirm that the password was changed

If LDAP backend is used, and LDAP password policy is enabled, the 'password reset flag is set to true when password is generated, so that the user is forced to change his password on next connection. This feature can be disabled in LDAP configuration.
Si l'utilisateur effectue une nouvelle demande de réinitialisation mais qu'une requête est déjà en attente, il peut demander une ré-expédition du courriel. La durée de validité de la requête est un paramètre de configuration.

## Configuration

Le lien de réinitialisation de mot-de-passe doit être activé, voir la personnalisation du portail.

Aller dans le manager, `Paramètres généraux` » `Paramètres avancés` » `Gestion des mots-de-passe` :

- SMTP:
  - SMTP Server: IP or hostname of the SMTP server
  - SMTP User: SMTP user if authentication is required
  - SMTP Password: SMTP password if authentication is required

- If no SMTP server is configured, the mail will be sent via the local sendmail program. Else, Net::SMTP module is required to use the SMTP server
- The SMTP server value can hold the port, for example: `mail.example.com:25`
- If authentication is configured, Authen::SASL and MIME::Base64 modules are required

- En-têtes de courriel :
  - Expéditeur : adresse vue dans le champ “From” (défaut : noreply@[DOMAINE])
  - Adresse pour la réponse : adresse vue dans le champ “Reply-To”
  - Jeu de caractères du courriel : jeu de caractère utilisé pour le corps du message (défaut : utf-8)

- Contenu du courriel :
  - Sujet du message de succès : sujet du courriel lorsque le mot-de-passe est changé (défaut : [LemonLDAP::NG] Your new password)
  - Contenu du message (optionnel) : contenu du courriel envoyé lorsque le mot-de-passe est changé
  - Sujet du message de confirmation : sujet du courriel envoyé lorsque le changement de mot-de-passe est demandé (défaut: [LemonLDAP::NG] Password reset confirmation)
  - Contenu du message de confirmation (optionnel) : contenu du courriel envoyé lorsque le changement de mot-de-passe est demandé

Par défaut, les messages sont vides afin d'utiliser les modèles HTML :

- portal/skins/common/mail_confirm.tpl
- portal/skins/common/mail_password.tpl

Si les contenus sont définis dans le manager, les modèles HTML ne sont pas utilisés.

- Autres :
  - URL de la page : URL de la page de réinitialisation de mot-de-passe (défaut : [PORTAL]/mail.pl)
  - Regexp pour la génération de mot-de-passe : expression régulière utilisée pour générer le mot-de-passe (défaut : [A-Z]{3}[a-z]{5}.\d{2})
  - Durée de validité de la requête de réinitialisation de mot-de-passe : nombre de secondes pour la validité de la requête de réinitialisation. Durant cette période, l'utilisateur peut demander que le courriel soit ré-émis (défaut : durée de vie de la session)
  - Clef de session contenant l'adresse mail : nom de la clef de session contenant l'adresse de courriel. Cette valeur peut être utilisée pour savoir à quel destinataire doit être envoyé le courriel (défaut : mail).