Semaine 16 - Dossiers d'examen

This commit is contained in:
gauvainboiche
2026-11-04 09:15:12 +01:00
parent a8005c6164
commit 6d0f10383a
2 changed files with 33 additions and 11 deletions
@@ -96,25 +96,25 @@ def valider_inscription(nom, prenom, email, mdp, confirmation):
erreurs = []
if nom == "":
erreurs.append("Erreur : Le Nom ne doit pas être vide.")
erreurs.append("Le Nom ne doit pas être vide.")
if prenom == "":
erreurs.append("Erreur : Le Prénom ne doit pas être vide.")
erreurs.append("Le Prénom ne doit pas être vide.")
if not est_courriel(email):
erreurs.append("Erreur : Le Courriel est d'un format invalide.")
erreurs.append("Le Courriel est d'un format invalide.")
if len(mdp) < 12:
erreurs.append("Erreur : Le Mot de Passe doit faire 12 caractères de longueur minimum.")
erreurs.append("Le Mot de Passe doit faire 12 caractères de longueur minimum.")
if not re.search("[A-Z]", mdp):
erreurs.append("Erreur : Le Mot de Passe doit contenir au moins une Majuscule.")
erreurs.append("Le Mot de Passe doit contenir au moins une Majuscule.")
if not re.search("[0-9]", mdp):
erreurs.append("Erreur : Le Mot de Passe doit contenir au moins un Chiffre.")
erreurs.append("Le Mot de Passe doit contenir au moins un Chiffre.")
if mdp != confirmation:
erreurs.append("Erreur : Les deux Mots de Passe ne correspondent pas.")
erreurs.append("Les deux Mots de Passe ne correspondent pas.")
if len(erreurs) > 0:
return erreurs
@@ -134,7 +134,7 @@ def utilisateur_courant():
user_id = session.get("user_id")
if user_id is None:
return None
return get_db().execute("SELECT * FROM members WHERE id = ?", (user_id,)).fetchone()
return get_db().execute("SELECT * FROM adherents WHERE id = ?", (user_id,)).fetchone()
# ==========================================================================
@@ -278,7 +278,23 @@ def profil():
- refuser un niveau qui n'est pas dans NIVEAUX
"""
if request.method == "POST":
pass
nom = request.form.get("nom", "").strip()
prenom = request.form.get("prenom", "").strip()
niveau = request.form.get("niveau", "")
if niveau not in NIVEAUX:
flash("Erreur : Le Niveau choisi est invalide.", "erreur")
elif nom == "" or prenom == "":
flash("Erreur : Le Nom et le Prénom ne doivent pas être vides.", "erreur")
else:
db = get_db()
db.execute(
"UPDATE adherents SET nom = ?, prenom = ?, niveau = ? WHERE id = ?",
(nom, prenom, niveau, session["user_id"]),
)
db.commit()
flash("Profil mis à jour.", "succes")
return redirect(url_for("profil"))
return render_template("profil.html", niveaux=NIVEAUX)
@@ -289,7 +305,9 @@ def admin():
À FAIRE : lire tous les adhérents, les plus récents d'abord.
"""
adherents = []
adherents = get_db().execute(
"SELECT * FROM adherents ORDER BY date_inscription DESC, id DESC"
).fetchall()
return render_template("admin.html", adherents=adherents)
@@ -297,6 +315,10 @@ def admin():
@admin_requis
def promouvoir(adherent_id):
"""EXERCICE 9 (suite) — promouvoir un adhérent administrateur."""
db = get_db()
db.execute("UPDATE adherents SET role = 'admin' WHERE id = ?", (adherent_id,))
db.commit()
flash("Adhérent promu administrateur.", "succes")
return redirect(url_for("admin"))
@@ -307,7 +329,7 @@ def accueil():
À FAIRE : remplacer le 0 par le vrai total, lu dans la base
avec un SELECT COUNT(*).
"""
nb = 0
nb = get_db().execute("SELECT COUNT(*) FROM adherents").fetchone()[0]
return render_template("accueil.html", nb_adherents=nb)