Ajout des fonctions d'enregistrement et d'update d'utilisateur
This commit is contained in:
parent
83ca6366b1
commit
a3038bb268
|
@ -5,6 +5,7 @@ Permet son accès au logiciel ou non
|
|||
"""
|
||||
|
||||
import DB.dbLink as dbo
|
||||
import Users.Model as U
|
||||
from getpass import getpass
|
||||
import hashlib
|
||||
import mysql.connector as mariadb
|
||||
|
@ -24,7 +25,7 @@ class Auth():
|
|||
def grantAccess(self):
|
||||
"""Authentification de l'utilisateur """
|
||||
#On définit les champs à récupérer en BDD comme vides
|
||||
user_iD = None
|
||||
user_id = None
|
||||
user_psswd = None
|
||||
|
||||
#On va récupérer les infos en BDD
|
||||
|
@ -33,14 +34,15 @@ class Auth():
|
|||
result = link.query("SELECT Nom, MdP FROM utilisateur WHERE Identifiant = %s", [self.input_id, ])
|
||||
|
||||
for Nom, MdP in result:
|
||||
user_iD = Nom
|
||||
user_id = Nom
|
||||
user_psswd = MdP
|
||||
|
||||
#Si l'user ID a été trouvé
|
||||
#On compare le mot de passe entré à celui récupéré en BDD, si ça matche, on renvoie True
|
||||
if user_iD != None:
|
||||
if user_id != None:
|
||||
if self.input_psswd.hexdigest() == user_psswd:
|
||||
Auth.access = True
|
||||
Auth.current_user = U.User(user_id)
|
||||
print("Accès autorisé")
|
||||
else:
|
||||
print("Accès refusé : Le mot de passe est incorrect")
|
||||
|
|
23
DB/dbLink.py
23
DB/dbLink.py
|
@ -5,7 +5,7 @@ import mysql.connector as mariadb
|
|||
|
||||
|
||||
class DBLink:
|
||||
"""Classe permettant de faire une requete à la base de données"""
|
||||
"""Classe permettant de faire des requetes à la base de données"""
|
||||
|
||||
_db_connection = None
|
||||
_db_cur = None
|
||||
|
@ -16,13 +16,28 @@ class DBLink:
|
|||
self._db_connection = mariadb.connect(host = db_ids["host"], user = db_ids["user"], password = db_ids["password"], database = db_ids["database"])
|
||||
self._db_cur = self._db_connection.cursor()
|
||||
|
||||
#Query standard
|
||||
def query(self, query, args):
|
||||
self._db_cur.execute(query, args)
|
||||
"""query standard"""
|
||||
try:
|
||||
self._db_cur.execute(query, args)
|
||||
except mariadb.Error as e:
|
||||
self._db_cur = False
|
||||
print("Erreur : ", e)
|
||||
return self._db_cur
|
||||
|
||||
#on ferme la connexion
|
||||
def commit(self, query, args):
|
||||
"""ajout d'un élément en bdd standard"""
|
||||
try:
|
||||
self._db_cur.execute(query, args)
|
||||
self._db_connection.commit()
|
||||
message = "Element ajouté"
|
||||
except mariadb.Error as e:
|
||||
message = "Erreur"
|
||||
print("Erreur : ", e)
|
||||
return message
|
||||
|
||||
def __del__(self):
|
||||
"""fermeture de la connexion"""
|
||||
self._db_connection.close()
|
||||
|
||||
def DBTest():
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
from tkinter import *
|
||||
|
||||
class BarreOutils():
|
||||
|
||||
"""Notre fenêtre principale.
|
||||
Tous les widgets sont stockés comme attributs de cette fenêtre."""
|
||||
|
||||
|
||||
"""Notre fenêtre principale.
|
||||
Tous les widgets sont stockés comme attributs de cette fenêtre."""
|
||||
|
||||
def __init__(self):
|
||||
self.fenetre = Tk()
|
||||
self.message = Label(self.fenetre, text="Barre outils")
|
||||
|
@ -14,26 +14,22 @@ class BarreOutils():
|
|||
|
||||
# Bouton qui ouvre le menu Mes projets :
|
||||
# dans lequel les utilisateurs pourront visualiser les taches et les temps en cours sur le/ les projets en cours
|
||||
|
||||
|
||||
self.bouton_mesProjets = Button(self.fenetre, text="Mes projets", fg="red")
|
||||
self.bouton_mesProjets.pack(side="right")
|
||||
|
||||
|
||||
|
||||
liste_projets = Listbox(self.fenetre)
|
||||
liste_projets.pack()
|
||||
|
||||
liste_projets.insert(END, "gestt")
|
||||
liste_projets.insert(END, "ratatouille")
|
||||
liste_projets.insert(END, "chouxfleur")
|
||||
|
||||
|
||||
# Bouton Deconnexion
|
||||
self.bouton_deconnexion = Button(self.fenetre, text="Deconnexion", command=self.fenetre.destroy)
|
||||
self.bouton_deconnexion.pack(side="left")
|
||||
|
||||
|
||||
|
||||
b = BarreOutils()
|
||||
b.fenetre.mainloop()
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -6,20 +6,62 @@ class User:
|
|||
"""Modèle utilisateur. Contient un objet utilisateur"""
|
||||
|
||||
def __init__(self, id):
|
||||
"""Constructeur créant utilisateur à partir d'un ID"""
|
||||
self.identifiant = id
|
||||
|
||||
#On va chercher l'user en base de données
|
||||
link = db.DBLink()
|
||||
query = "SELECT u.IDUtil AS idBDD, u.Nom AS nom, u.Prénom AS prenom, u.Identifiant AS identifiant, u.MdP AS MdP, u.SalaireBrut AS cout, f.Intitulé AS fonction, p.Libelle AS pole FROM utilisateur AS u JOIN fonction AS f ON f.IDFonc = u.IDFonc JOIN pole AS p ON p.IDPole = p.IDPole WHERE u.identifiant = %s"
|
||||
query = "SELECT u.IDUtil AS id_bdd, u.Nom AS nom, u.Prénom AS prenom, u.Identifiant AS identifiant, u.MdP AS mdp, u.SalaireBrut AS cout, u.IDFonc AS id_fonc, f.Intitulé AS fonction, p.Libelle AS pole \
|
||||
FROM utilisateur AS u \
|
||||
JOIN fonction AS f ON f.IDFonc = u.IDFonc \
|
||||
JOIN pole AS p ON p.IDPole = p.IDPole \
|
||||
WHERE u.identifiant = %s"
|
||||
result = link.query(query, [self.identifiant, ])
|
||||
|
||||
#On remplit l'objet à partir des éléments récupérés en BDD
|
||||
for idBDD, nom, prenom, identifiant, MdP, cout, fonction, pole in result:
|
||||
self._id_table = idBDD
|
||||
for id_bdd, nom, prenom, identifiant, mdp, cout, id_fonc, fonction, pole in result:
|
||||
self._id_table = id_bdd
|
||||
self.fonction = fonction
|
||||
self.pole = pole
|
||||
self.nom = nom
|
||||
self.prenom = prenom
|
||||
self.identifiant = identifiant
|
||||
self._mdp = MdP
|
||||
self.cout = cout
|
||||
self._mdp = mdp
|
||||
self.cout = cout
|
||||
self.id_fonc = id_fonc
|
||||
|
||||
|
||||
def hydrate(self, nom, prenom, identifiant, mdp, cout, idfonc, fonction, pole):
|
||||
"""Hydratation de l'objet"""
|
||||
self.id_fonc = idfonc
|
||||
self.fonction = fonction
|
||||
self.pole = pole
|
||||
self.nom = nom
|
||||
self.prenom = prenom
|
||||
self.identifiant = identifiant
|
||||
self._mdp = mdp
|
||||
self.cout = cout
|
||||
|
||||
def register(self):
|
||||
"""Enregistrement de l'utilisateur"""
|
||||
link = db.DBLink()
|
||||
query = "INSERT INTO utilisateur \
|
||||
(IDFonc, Nom, Prénom, Identifiant, MdP, SalaireBrut) \
|
||||
VALUES (%s, %s, %s, %s, %s, %s)"
|
||||
link.commit(query, [self.id_fonc, self.nom, self.prenom, self.identifiant, self._mdp, self.cout])
|
||||
|
||||
|
||||
def update(self):
|
||||
"""Mise à jour de l'utilisateur"""
|
||||
link = db.DBLink()
|
||||
query = "UPDATE utilisateur \
|
||||
SET Nom = %s, Prénom = %s, Identifiant = %s, MdP = %s, IDFonc = %s, SalaireBrut = %s \
|
||||
WHERE IDUtil = %s"
|
||||
link.commit(query, [self.nom, self.prenom, self.identifiant, self._mdp, self.id_fonc, self.cout, self._id_table])
|
||||
|
||||
def delete(self):
|
||||
"""supprimer un utilisateur"""
|
||||
|
||||
|
||||
def getRoles(self):
|
||||
"""liste des roles de l'utilisateur"""
|
||||
|
|
Loading…
Reference in a new issue