Ajout des fonctions d'enregistrement et d'update d'utilisateur

This commit is contained in:
Matt Marcha 2017-07-15 17:44:01 +02:00
parent 83ca6366b1
commit a3038bb268
4 changed files with 79 additions and 24 deletions

View file

@ -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")

View file

@ -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):
"""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():

View file

@ -4,8 +4,8 @@ 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()
@ -33,7 +33,3 @@ class BarreOutils():
b = BarreOutils()
b.fenetre.mainloop()

View file

@ -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._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"""