from flask import redirect, render_template, request, session, url_for import auth from core.flask_app import app @app.route("/register", methods=["GET", "POST"]) def register(): error = None form = {"email": "", "nom": "", "prenom": ""} if request.method == "POST": form["email"] = request.form.get("email", "").strip() form["nom"] = request.form.get("nom", "").strip() form["prenom"] = request.form.get("prenom", "").strip() password = request.form.get("password", "") password_confirm = request.form.get("password_confirm", "") if password != password_confirm: error = "Les deux mots de passe ne correspondent pas." else: try: user_id = auth.create_user(form["email"], password, form["nom"], form["prenom"]) except auth.UserCreationError as exc: error = str(exc) else: # Le compte existe mais n'est pas encore utilisable (2FA # pas encore confirmée, voir create_user.py) — une session # "en attente" DISTINCTE de la vraie connexion (session # "user_id"), pour qu'un compte jamais confirmé ne puisse # jamais se retrouver connecté malgré lui. session["pending_register_user_id"] = user_id return redirect(url_for("register_2fa")) return render_template( "auth/register.html", error=error, form=form, min_score_required=auth.MIN_SCORE_REQUIRED, )