diff options
Diffstat (limited to 'src/core/coreUser.py')
| -rw-r--r-- | src/core/coreUser.py | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/src/core/coreUser.py b/src/core/coreUser.py new file mode 100644 index 0000000..28476ad --- /dev/null +++ b/src/core/coreUser.py @@ -0,0 +1,121 @@ + +import re +from PyQt5.QtWidgets import QMessageBox +from src.gui import pageHome +from src.database import dbuser, dbsearch + + +def core_login(mainWindow, email, password) -> None: + user = dbuser.DbUser(mainWindow) + if user.check_exist_email(email): + res = user.check_user_credential(email, password) + if res: + search = dbsearch.DbSearch(mainWindow).get_user_account_by_userid(res) + QMessageBox.information( + mainWindow, + "Connexion", + "Vous êtes connecté" + ) + mainWindow.userConnected = True + mainWindow.userId = str(search[0][0]) + mainWindow.userEmail = search[0][1] + mainWindow.userInscriptionDate = search[0][2] + if search[0][3] == 0: + mainWindow.userStatus = "Admin" + elif search[0][3] == 1: + mainWindow.userStatus = "Pro" + elif search[0][3] == 2: + mainWindow.userStatus = "Client" + pageHome.main(mainWindow) + else: + QMessageBox.warning( + mainWindow, + "Connexion", + "Mauvaise combinaison mail & mot de passe" + ) + else: + QMessageBox.warning( + mainWindow, + "Connexion", + "Mauvais email" + ) + + +def core_register(mainWindow, email, password, userStatus) -> None: + user = dbuser.DbUser(mainWindow) + regNumb = "[0-9]" + regUpper = "[A-Z]" + regSpecial = "[`!@#$%^&*()_+\-=\[\]{};':\"\\|,.<>\/?~µ°€£]" + regEmail = "^[a-z0-9._-]+@[a-z0-9-]+\.[a-z]+" + + # Si vide + if not email: + QMessageBox.warning( + mainWindow, + "Email invalide", + "Veuillez renseigner un email" + ) + return + + if not password: + QMessageBox.warning( + mainWindow, + "Mot de passe invalide", + "Veuillez renseigner un mot de passe" + ) + return + + if userStatus == None: + QMessageBox.warning( + mainWindow, + "Mauvais rôle", + "Veuillez selectionner un rôle" + ) + return + + # les regex + if not re.fullmatch(regEmail, email): + QMessageBox.warning( + mainWindow, + "Email invalid", + "Email non conforme" + ) + return + + if len(password) < 8\ + or not re.search(regNumb, password)\ + or not re.search(regUpper, password)\ + or not re.search(regSpecial, password): + QMessageBox.warning( + mainWindow, + "Mot de passe invalide", + ("Le mot de passe doit avoir:\n" + "-Au moins 8 characters\n" + "-Une majuscule\n" + "-Un chiffre\n" + "-Un character spécial") + ) + return + + # si email deja présent + if user.check_exist_email(email): + QMessageBox.warning( + mainWindow, + "Email invalid", + "Email déja utilisé" + ) + return + + res = user.register_user(email, password, userStatus) + if res: + QMessageBox.information( + mainWindow, + "Inscription", + "Inscription réussie!" + ) + else: + QMessageBox.warning( + mainWindow, + "Erreur bdd", + "Erreur lors de l'inscritpion" + ) |
