Semaine 16 - Dossiers d'examen
This commit is contained in:
@@ -96,25 +96,25 @@ def valider_inscription(nom, prenom, email, mdp, confirmation):
|
|||||||
erreurs = []
|
erreurs = []
|
||||||
|
|
||||||
if nom == "":
|
if nom == "":
|
||||||
erreurs.append("Erreur : Le Nom ne doit pas être vide.")
|
erreurs.append("Le Nom ne doit pas être vide.")
|
||||||
|
|
||||||
if prenom == "":
|
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):
|
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:
|
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):
|
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):
|
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:
|
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:
|
if len(erreurs) > 0:
|
||||||
return erreurs
|
return erreurs
|
||||||
@@ -134,7 +134,7 @@ def utilisateur_courant():
|
|||||||
user_id = session.get("user_id")
|
user_id = session.get("user_id")
|
||||||
if user_id is None:
|
if user_id is None:
|
||||||
return 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
|
- refuser un niveau qui n'est pas dans NIVEAUX
|
||||||
"""
|
"""
|
||||||
if request.method == "POST":
|
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)
|
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.
|
À 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)
|
return render_template("admin.html", adherents=adherents)
|
||||||
|
|
||||||
|
|
||||||
@@ -297,6 +315,10 @@ def admin():
|
|||||||
@admin_requis
|
@admin_requis
|
||||||
def promouvoir(adherent_id):
|
def promouvoir(adherent_id):
|
||||||
"""EXERCICE 9 (suite) — promouvoir un adhérent administrateur."""
|
"""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"))
|
return redirect(url_for("admin"))
|
||||||
|
|
||||||
|
|
||||||
@@ -307,7 +329,7 @@ def accueil():
|
|||||||
À FAIRE : remplacer le 0 par le vrai total, lu dans la base
|
À FAIRE : remplacer le 0 par le vrai total, lu dans la base
|
||||||
avec un SELECT COUNT(*).
|
avec un SELECT COUNT(*).
|
||||||
"""
|
"""
|
||||||
nb = 0
|
nb = get_db().execute("SELECT COUNT(*) FROM adherents").fetchone()[0]
|
||||||
return render_template("accueil.html", nb_adherents=nb)
|
return render_template("accueil.html", nb_adherents=nb)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user