Semaine 16 - Dossiers d'examen
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user