Files
colibre/src/pages/mot_de_passe_oublie.py
T
2026-07-13 23:24:27 +02:00

68 lines
2.1 KiB
Python

import dash_bootstrap_components as dbc
from dash import dcc, html, register_page
NAME = "Mot de passe oublié"
register_page(
__name__,
path="/mot-de-passe-oublie",
title="Mot de passe oublié | colibre",
name=NAME,
description="Réinitialiser votre mot de passe colibre.",
)
ERROR_MESSAGES = {
"email_send_failed": "Erreur technique lors de l'envoi de l'email. Réessayez plus tard.",
}
def layout(
error: str | None = None, pending: str | None = None, email: str | None = None, **_
):
alerts = []
if error and error in ERROR_MESSAGES:
alerts.append(dbc.Alert(ERROR_MESSAGES[error], color="danger"))
if pending == "1":
alerts.append(
dbc.Alert(
"Si un compte existe avec cet email, un lien de réinitialisation vient d'être envoyé. "
"Vérifiez votre boîte de réception.",
color="info",
)
)
return dbc.Container(
className="py-4",
style={"maxWidth": "500px"},
children=[
html.H2("Mot de passe oublié"),
*alerts,
html.P(
"Saisissez votre adresse email. Si un compte existe, "
"vous recevrez un lien pour choisir un nouveau mot de passe."
),
html.Form(
method="POST",
action="/auth/request-password-reset",
children=[
dcc.Input(
type="hidden",
id={"type": "csrf-input", "index": "forgot"},
name="csrf_token",
),
dbc.Label("Adresse email"),
dbc.Input(
type="email",
name="email",
required=True,
value=email or "",
className="mb-3",
),
dbc.Button("Envoyer le lien", type="submit", color="secondary"),
],
),
html.Hr(),
dcc.Link("Retour à la connexion", href="/connexion"),
],
)