diff options
| author | Debulois <quentin@debulois.fr> | 2022-04-20 13:17:36 +0200 |
|---|---|---|
| committer | Debulois <quentin@debulois.fr> | 2022-04-20 13:17:36 +0200 |
| commit | 4c4f70bf6eb88a419add86e182d3080674196433 (patch) | |
| tree | de407cee641f168c5ac325aa6a8b695ee04a429b /app_alphajob/database/dbuser.py | |
| parent | 41243ec2137bac39225231c0834f9d611fe94728 (diff) | |
Mis en place de la structure orientée objet
Diffstat (limited to 'app_alphajob/database/dbuser.py')
| -rw-r--r-- | app_alphajob/database/dbuser.py | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/app_alphajob/database/dbuser.py b/app_alphajob/database/dbuser.py deleted file mode 100644 index e0a62fb..0000000 --- a/app_alphajob/database/dbuser.py +++ /dev/null @@ -1,171 +0,0 @@ - - -############################################################################ -# # -# Description: Ensemble de méthodes pour étendre dbmain # -# afin de gérer les utilisateurs # -# # -############################################################################ - -from datetime import datetime -from passlib.hash import sha512_crypt -# Import de dbmain -from . import dbmain - -# Extension de cette classe avec dbmain -class DbUser(dbmain.DbMain): - - # **************************************************************************** - # GESTION DES UTILISATEURS - # **************************************************************************** - # Enregistrement d'un nouvel utilisateur - def register_user(self, email, password, userStatus): - # On vérifie si l'email existe deja dans la bdd - exist = self.check_exist_email(email) - # Si non - if not exist: - # Chiffrement du pass - hash = self.crypt_pass(password) - # Préparation de la requète - reqAddUser = """"" - INSERT INTO - """ + self.TABLEUSERACCOUNT + """ - (email, password, inscriptionDate, userStatus) - VALUES - (%s, %s, %s, %s)""" - # Execution de la requète - self.exec_cmd(reqAddUser, - [email, - hash, - datetime.now().strftime("%Y-%m-%d %H:%M:%S"), - userStatus - ] - ) - # Retourne 1 pour réussite - return 1 - else: - # Retourne 0 pour échec - return 0 - - # Vérification de la combinaison email - pass pour authentification - def check_user_credential(self, email, password): - # Préparation de la requète pour récupérer les infos ou l'email est présent - reqCheckCredential = """ - SELECT - userId, password - FROM - """ + self.TABLEUSERACCOUNT + """ - WHERE - email = %s """ - # Execution de la requète - self.exec_cmd(reqCheckCredential, [email]) - result = self.cur.fetchone() - # Vérifiaction de correspondance email & pass - if result and sha512_crypt.verify(password, result[1]): - return result[0] - - # Mise à jour des infos d'un utilisateur - def update_user_infos(self, userInfos, userId, isPro, userJobs=None): - # Préparation de la requète pour mise à jour des infos - # J'ai préféré faire deux requètes distinctes et ne pas utiliser des valeurs - # passées par POST (key => value) pour gérer les noms des colonnes - # car je préfère les passer en "dur" dans mes requêtes (risque d'injection SQL%s). - reqAddInfoClient = """ - REPLACE INTO - """ + self.TABLEUSERINFO + """ - (lastname, firstname, phoneNumber, - adress, zipCode, city, userId) - VALUES - (%s, %s, %s, %s, %s, %s, %s)""" - reqAddInfoPro = """ - REPLACE INTO - """ + self.TABLEUSERINFO + """ - (lastname, firstname, phoneNumber, - adress, zipCode, city, degree, - capability, description, userId) - VALUES - (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""" - reqAddInfoProJobs = """ - INSERT INTO - """ + self.TABLEUSERJOB + """ - (jobCategoryId, userId) - VALUES - (%s, %s)""" - reqRemoveInfoProJobs = """ - DELETE FROM - """ + self.tableUserJob + """ - WHERE - jobCategoryId = %s - AND - userId = %s""" - # if not isPro: - # # Exécution de la requète - # # https:#www.php.net/manual/fr/function.array-values.php - # # Pour passer de "dict" a "list" -> array_values() - # args = [i for i in userInfos] - # args.push(userId) - # self.exec_cmd(reqAddInfoClient, args) - # else: - # # https:#stackoverflow.com/questions/15986235/how-to-use-json-stringify-and-json-decode-properly - # # Récupération des emplois dans le JSON et supression de ces derniers de la liste - # selectedJobs = json_decode(html_entity_decode(userInfos["jobs"])) - # unset(userInfos["jobs"]) - # # array_value -> Qu'est ce qui est présent dans 1 mais pas dans 2 %s - # # Comparaison des jobs anciennement présent avec ceux sélectionnés, donc ajoutés. - # jobsAdded = array_values(array_diff(selectedJobs, userJobs)) - # # Comparaison des jobs deja présent avec ceux sélectionnés, donc ajoutés. - # jobsRemoved = array_values(array_diff(userJobs, selectedJobs)) - # # on continue classiquement avec les autres éléments - # args = array_values(userInfos) - # array_push(args, userId) - # self.exec_cmd(reqAddInfoPro, args) - # for i in jobsAdded: - # self.exec_cmd(reqAddInfoProJobs, array(jobsAdded[i], userId)) - # for i in jobsRemoved: - # self.exec_cmd(reqRemoveInfoProJobs, array(jobsRemoved[i], userId)) - - # **************************************************************************** - # GESTION DU TOKEN AUTOLOGIN - # **************************************************************************** - # Vérification de la combinaison email - jeton d'auto-login pour authentification - def check_token_autologin(self, email, token): - # Préparation de la requète pour récupérer les infos ou l'email est présent - reqCheckToken = """ - SELECT - userId, tokenAutoLogin - FROM - """ + self.TABLEUSERACCOUNT + """ - WHERE - email = %s""" - # Exécution de la requète - self.exec_cmd(reqCheckToken, [email]) - result = self.cur.fetchone() - # Vérifiaction de correspondance email & jeton d'auto-connection - if result and result[1] == token: - return result[0] - - # Mise à jour du jeton d'auto-login - def update_token_autologin(self, email, token): - # Préparation de la requète pour mise à jour du jeton d'auto-connection - reqUpdateToken = """ - UPDATE - """ + self.TABLEUSERACCOUNT + """ - SET - tokenAutoLogin = %s - WHERE - email = %s""" - # Execution de la requète - self.exec_cmd(reqUpdateToken, [token, email]) - - # Supression du jeton d'auto-login - def del_token_autologin(self, email): - # Préparation de la requète pour supression du jeton d'auto-connection - reqDeleteToken = """ - UPDATE - """ + self.TABLEUSERACCOUNT + """ - SET - tokenAutoLogin = NULL - WHERE - email = %s""" - # Execution de la requète - self.exec_cmd(reqDeleteToken, [email]) |
