Checkpoint: Ajout de la fonctionnalité complète de réinitialisation de mot de passe avec génération de tokens temporaires (24h), stockage en base de données, et envoi d'emails automatiques. Nouveau bouton dans la page de gestion des utilisateurs avec dialogue de confirmation.
This commit is contained in:
@@ -339,3 +339,48 @@ export async function sendGroupEmail(params: {
|
||||
|
||||
return { sent, failed };
|
||||
}
|
||||
|
||||
/**
|
||||
* Envoie un email de réinitialisation de mot de passe
|
||||
*/
|
||||
export async function sendPasswordResetEmail(params: {
|
||||
apprenantEmail: string;
|
||||
apprenantNom: string;
|
||||
apprenantPrenom: string;
|
||||
resetLink: string;
|
||||
}): Promise<boolean> {
|
||||
const content = `
|
||||
<h2>Réinitialisation de mot de passe</h2>
|
||||
<p>Bonjour ${params.apprenantPrenom} ${params.apprenantNom},</p>
|
||||
|
||||
<p>Vous avez demandé la réinitialisation de votre mot de passe pour votre compte Manager Itinova.</p>
|
||||
|
||||
<p>Cliquez sur le bouton ci-dessous pour créer un nouveau mot de passe :</p>
|
||||
|
||||
<div style="text-align: center; margin: 30px 0;">
|
||||
<a href="${params.resetLink}" class="button">Réinitialiser mon mot de passe</a>
|
||||
</div>
|
||||
|
||||
<p>Ou copiez ce lien dans votre navigateur :</p>
|
||||
<div style="background-color: white; padding: 15px; border-radius: 4px; word-break: break-all; font-family: monospace; font-size: 12px; border: 1px solid #e5e7eb;">
|
||||
${params.resetLink}
|
||||
</div>
|
||||
|
||||
<div class="info-box" style="background-color: #fef3c7; border-left-color: #f59e0b;">
|
||||
<p><strong>⚠️ Important :</strong></p>
|
||||
<ul>
|
||||
<li>Ce lien est valide pendant <strong>24 heures</strong> seulement</li>
|
||||
<li>Il ne peut être utilisé qu'<strong>une seule fois</strong></li>
|
||||
<li>Si vous n'avez pas demandé cette réinitialisation, ignorez cet email</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p>Pour toute question, contactez le service RH.</p>
|
||||
`;
|
||||
|
||||
return sendEmail({
|
||||
to: params.apprenantEmail,
|
||||
subject: 'Réinitialisation de votre mot de passe - Manager Itinova',
|
||||
html: getEmailTemplate(content),
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user