From 7c5e52a59f2119790e2e212454ca02ccb788e982 Mon Sep 17 00:00:00 2001 From: Mylloon Date: Fri, 19 Nov 2021 23:54:51 +0100 Subject: [PATCH] Change `verificationIdentifiants` behaviour and add a method to fetch data on user by id --- users.py | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/users.py b/users.py index 0617862..2c6813e 100644 --- a/users.py +++ b/users.py @@ -28,7 +28,7 @@ class Utilisateurs(BaseDeDonnees): passe="P@ssword", metier=0, nom="Admin", - prenom="Admin", + prenom="Système", naissance="2000/10/09", adresse="12 Rue de Montmartre", postal=46800 @@ -54,16 +54,19 @@ class Utilisateurs(BaseDeDonnees): """ self.requete(requete, pseudo) - def verificationIdentifiants(self, pseudo: str, motDePasse: str) -> bool: - """Renvoie vrai ou faux si les identifiants données sont bons.""" + def verificationIdentifiants(self, pseudo: str, motDePasse: str): + """ + Retourne l'ID de l'utilisateur si trouvé dans la base de donnée ainsi + que son métier (`tuple`), sinon renvoie `(0,)`. + """ requete = """ - SELECT EXISTS ( - SELECT 1 FROM utilisateurs - WHERE pseudo = ? AND passe = ? - ) + SELECT id, metier FROM utilisateurs + WHERE pseudo = ? AND passe = ? """ - # Vrai si le premier élément que renvoie la requête au dessus est 1 - return True if self.affichageResultat(self.requete(requete, [pseudo, motDePasse]))[0][0] == 1 else False + reponseBaseDeDonnee = self.affichageResultat(self.requete(requete, [pseudo, motDePasse])) + if len(reponseBaseDeDonnee) == 0: # si les identifiants renseignés sont mauvais + return (0,) + return reponseBaseDeDonnee[0] def listUtilisateurs(self) -> list: """Retourne la liste des nom d'utilisateurs.""" @@ -72,3 +75,11 @@ class Utilisateurs(BaseDeDonnees): """ # i[0] parce que sinon ça renvoie des Tuple qui ressemble à ça : `(Utilisateur,)` return [i[0] for i in self.affichageResultat(self.requete(requete))] + + def recuperationUtilisateur(self, id: int) -> list: + """Retourne les informations d'un utilisateur grâce à son ID.""" + requete = """ + SELECT pseudo, passe, metier, nom, prenom, naissance, adresse, postal FROM utilisateurs + WHERE id = ? + """ + return self.affichageResultat(self.requete(requete, [id]))