Ajout du module de gestion des utilisateurs et correction du formulaire
This commit is contained in:
+86
-4
@@ -1,12 +1,12 @@
|
||||
from flask import Blueprint, render_template, request, redirect, url_for, session, flash
|
||||
from werkzeug.security import check_password_hash
|
||||
from werkzeug.security import check_password_hash, generate_password_hash
|
||||
from sqlalchemy import text
|
||||
from app import db
|
||||
from datetime import datetime
|
||||
|
||||
main = Blueprint('main', __name__)
|
||||
|
||||
/* routes */
|
||||
|
||||
@main.route('/', methods=['GET', 'POST'])
|
||||
def index():
|
||||
if 'user_id' in session:
|
||||
@@ -50,8 +50,90 @@ def logout():
|
||||
session.clear()
|
||||
return redirect(url_for('main.index'))
|
||||
|
||||
@main.route('/gestion-utilisateurs')
|
||||
@main.route('/gestion-utilisateurs', methods=['GET', 'POST'])
|
||||
def gestion_utilisateurs():
|
||||
if 'user_id' not in session:
|
||||
return redirect(url_for('main.index'))
|
||||
return render_template('gestion_utilisateurs.html')
|
||||
|
||||
if request.method == 'POST':
|
||||
action = request.form.get('action')
|
||||
user_id = request.form.get('id')
|
||||
user_actif = request.form.get('actif', '1')
|
||||
user_prenom = request.form.get('prenom')
|
||||
user_nom = request.form.get('nom')
|
||||
user_login = request.form.get('login')
|
||||
user_mail = request.form.get('mail')
|
||||
user_pass = request.form.get('pass')
|
||||
|
||||
if action == 'creer':
|
||||
if user_pass:
|
||||
hashed_pass = generate_password_hash(user_pass)
|
||||
query = text("""
|
||||
INSERT INTO login (login, nom, prenom, mail, pass, actif)
|
||||
VALUES (:login, :nom, :prenom, :mail, :pass, :actif)
|
||||
""")
|
||||
db.session.execute(query, {
|
||||
"login": user_login,
|
||||
"nom": user_nom,
|
||||
"prenom": user_prenom,
|
||||
"mail": user_mail,
|
||||
"pass": hashed_pass,
|
||||
"actif": user_actif
|
||||
})
|
||||
db.session.commit()
|
||||
flash("Utilisateur créé avec succès.", "success")
|
||||
else:
|
||||
flash("Le mot de passe est obligatoire pour créer un utilisateur.", "danger")
|
||||
|
||||
elif action == 'modifier' and user_id:
|
||||
if user_pass:
|
||||
hashed_pass = generate_password_hash(user_pass)
|
||||
query = text("""
|
||||
UPDATE login
|
||||
SET login = :login, nom = :nom, prenom = :prenom, mail = :mail, pass = :pass, actif = :actif
|
||||
WHERE id = :id
|
||||
""")
|
||||
db.session.execute(query, {
|
||||
"id": user_id,
|
||||
"login": user_login,
|
||||
"nom": user_nom,
|
||||
"prenom": user_prenom,
|
||||
"mail": user_mail,
|
||||
"pass": hashed_pass,
|
||||
"actif": user_actif
|
||||
})
|
||||
else:
|
||||
query = text("""
|
||||
UPDATE login
|
||||
SET login = :login, nom = :nom, prenom = :prenom, mail = :mail, actif = :actif
|
||||
WHERE id = :id
|
||||
""")
|
||||
db.session.execute(query, {
|
||||
"id": user_id,
|
||||
"login": user_login,
|
||||
"nom": user_nom,
|
||||
"prenom": user_prenom,
|
||||
"mail": user_mail,
|
||||
"actif": user_actif
|
||||
})
|
||||
db.session.commit()
|
||||
flash("Utilisateur modifié avec succès.", "success")
|
||||
|
||||
return redirect(url_for('main.gestion_utilisateurs'))
|
||||
|
||||
# Lecture exacte de la table login de votre base de données
|
||||
users_query = text("SELECT id, login, nom, prenom, mail, actif FROM login ORDER BY id ASC")
|
||||
result = db.session.execute(users_query)
|
||||
|
||||
users = []
|
||||
for row in result:
|
||||
users.append({
|
||||
'id': row.id,
|
||||
'login': row.login if row.login else '',
|
||||
'nom': row.nom if row.nom else '',
|
||||
'prenom': row.prenom if row.prenom else '',
|
||||
'mail': row.mail if row.mail else '',
|
||||
'actif': row.actif if row.actif is not None else 1
|
||||
})
|
||||
|
||||
return render_template('gestion_utilisateurs.html', users=users)
|
||||
Reference in New Issue
Block a user