This repository has been archived on 2022-03-31. You can view files and clone it, but cannot push or open issues or pull requests.
GesMag/users.py

75 lines
3 KiB
Python
Raw Normal View History

2021-11-18 20:40:34 +01:00
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 (
2021-11-19 00:09:19 +01:00
id INTEGER PRIMARY KEY,
pseudo TEXT,
2021-11-18 20:40:34 +01:00
passe TEXT,
2021-11-19 00:09:19 +01:00
metier INTEGER,
nom TEXT,
prenom TEXT,
naissance TEXT,
adresse TEXT,
postal INTEGER
2021-11-18 20:40:34 +01:00
);
"""
self.requete(requete)
2021-11-18 21:56:03 +01:00
# Ajout d'un utilisateur par défaut si aucun utilisateur n'existe dans la base de donnée
2021-11-19 00:09:19 +01:00
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
)
2021-11-18 20:40:34 +01:00
2021-11-19 00:09:19 +01:00
def ajoutUtilisateurs(self, pseudo: str, passe: str, metier: int, nom: str, prenom: str, naissance: str, adresse: str, postal: str) -> list:
2021-11-18 20:40:34 +01:00
"""Ajoute un utilisateur et retourne l'ID de ce dernier."""
requete = """
INSERT INTO utilisateurs (
2021-11-19 00:09:19 +01:00
pseudo, passe, metier, nom, prenom, naissance, adresse, postal
2021-11-18 20:40:34 +01:00
) VALUES (
2021-11-19 00:09:19 +01:00
?, ?, ?, ?, ?, ?, ?, ?
2021-11-18 20:40:34 +01:00
);
"""
2021-11-19 00:09:19 +01:00
self.requete(requete, [pseudo, passe, metier, nom, prenom, naissance, adresse, postal])
2021-11-18 20:40:34 +01:00
return self.affichageResultat(self.requete("SELECT last_insert_rowid();"))
2021-11-19 11:12:28 +01:00
def suppressionUtilisateurs(self, pseudo: str) -> None:
2021-11-18 20:40:34 +01:00
"""Supprime un utilisateur."""
requete = """
DELETE FROM utilisateurs
2021-11-19 11:12:28 +01:00
WHERE pseudo = ?
2021-11-18 20:40:34 +01:00
"""
2021-11-19 11:12:28 +01:00
self.requete(requete, pseudo)
2021-11-18 20:40:34 +01:00
2021-11-19 11:12:28 +01:00
def verificationIdentifiants(self, pseudo: str, motDePasse: str) -> bool:
2021-11-18 20:40:34 +01:00
"""Renvoie vrai ou faux si les identifiants données sont bons."""
requete = """
SELECT EXISTS (
SELECT 1 FROM utilisateurs
2021-11-19 11:12:28 +01:00
WHERE pseudo = ? AND passe = ?
2021-11-18 20:40:34 +01:00
)
"""
2021-11-19 11:12:28 +01:00
# 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
2021-11-18 20:40:34 +01:00
def listUtilisateurs(self) -> list:
2021-11-19 11:12:28 +01:00
"""Retourne la liste des nom d'utilisateurs."""
2021-11-18 20:40:34 +01:00
requete = """
2021-11-19 11:12:28 +01:00
SELECT pseudo FROM utilisateurs
2021-11-18 20:40:34 +01:00
"""
2021-11-19 11:12:28 +01:00
# i[0] parce que sinon ça renvoie des Tuple qui ressemble à ça : `(Utilisateur,)`
2021-11-18 20:40:34 +01:00
return [i[0] for i in self.affichageResultat(self.requete(requete))]