Classe d'acc�s rapide � la base de donn�es

This commit is contained in:
Matt Marcha 2017-06-07 23:50:33 +02:00
parent 6d93b49ace
commit c24b7f9071
3 changed files with 83 additions and 0 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
DB/dbids.py
__pycache__

42
Auth/authentication.py Normal file
View file

@ -0,0 +1,42 @@
# -*-coding:Latin-1 -*
"""
Module permettant d'authentifier un utilisateur
Permet son accès au logiciel ou non
"""
import DB.dbLink as dbo
from getpass import getpass
import hashlib
import os
import mysql.connector as mariadb
#TODO : Récupérer les identifiants depuis un form dans une interface graphique
input_id = input("Entrer votre identifiant : ")
input_psswd = getpass("Entrer votre mot de passe : ")
input_psswd = hashlib.md5(input_psswd.encode())
#On définit les champs à récupérer en BDD comme vides
user_iD = None
user_psswd = None
#On va récupérer les infos en BDD
quer = "SELECT Nom FROM utilisateur"
link = dbo.DBLink()
result = link.query("SELECT Nom, MdP FROM utilisateur WHERE Identifiant = %s", [input_id, ])
for Nom, MdP in result:
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
#TODO : Définir l'autorisation de la connexion. Un fichier "auth" ? Une variable globale ?
if user_iD != None:
if input_psswd.hexdigest() == user_psswd:
print("Accès autorisé")
else:
print("Le mot de passe est invalide")
else:
print("Cet utilisateur n'existe pas")
os.system("pause")

39
DB/dbLink.py Normal file
View file

@ -0,0 +1,39 @@
# -*-coding:Latin-1 -*
import os
import DB.dbids as dbids
import mysql.connector as mariadb
class DBLink:
"""Classe permettant de faire une requete à la base de données"""
_db_connection = None
_db_cur = None
#On ouvre la connexion
def __init__(self):
db_ids = dbids.getIds()
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)
return self._db_cur
#on ferme la connexion
def __del__(self):
self._db_connection.close()
def DBTest():
quer = "SELECT Nom FROM utilisateur"
link = DBLink()
result = link.query("SELECT Nom FROM utilisateur", [])
for Nom in result:
print(Nom)
os.system("pause")