from db import BaseDeDonnees class Utilisateurs(BaseDeDonnees): """Gère une table "utilisateurs" pour une base de donnée donné.""" def __init__(self): super().__init__(r"utilisateurs.sqlite3") def creationTable(self) -> None: """Créer la table qui stocker les utilisateurs.""" requete = """ CREATE TABLE IF NOT EXISTS utilisateurs ( id INTEGER PRIMARY KEY, pseudo TEXT, passe TEXT, metier INTEGER, nom TEXT, prenom TEXT, naissance TEXT, adresse TEXT, postal INTEGER ); """ self.requete(requete) # Ajout d'un utilisateur par défaut si aucun utilisateur n'existe dans la base de donnée if len(self.listUtilisateurs()) == 0: self.ajoutUtilisateurs( pseudo="admin", passe="P@ssword", metier=0, nom="Admin", prenom="Admin", naissance="2000/10/09", adresse="12 Rue de Montmartre", postal=46800 ) def ajoutUtilisateurs(self, pseudo: str, passe: str, metier: int, nom: str, prenom: str, naissance: str, adresse: str, postal: str) -> list: """Ajoute un utilisateur et retourne l'ID de ce dernier.""" requete = """ INSERT INTO utilisateurs ( pseudo, passe, metier, nom, prenom, naissance, adresse, postal ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? ); """ self.requete(requete, [pseudo, passe, metier, nom, prenom, naissance, adresse, postal]) return self.affichageResultat(self.requete("SELECT last_insert_rowid();")) def suppressionUtilisateurs(self, nom: int) -> None: """Supprime un utilisateur.""" requete = """ DELETE FROM utilisateurs WHERE nom = ? """ self.requete(requete, nom) def verificationIdentifiants(self, nom: str, motDePasse: str) -> bool: """Renvoie vrai ou faux si les identifiants données sont bons.""" requete = """ SELECT EXISTS ( SELECT 1 FROM utilisateurs WHERE nom = ? AND passe = ? ) """ return True if self.affichageResultat(self.requete(requete, [nom, motDePasse]))[0][0] == 1 else False def listUtilisateurs(self) -> list: """Retourne la liste des utilisateurs.""" requete = """ SELECT nom FROM utilisateurs """ return [i[0] for i in self.affichageResultat(self.requete(requete))]