import re from PyQt5.QtWidgets import QMessageBox from src.gui import pageHome from src.database import dbuser, dbsearch def 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 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 not userStatus: 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!" ) return else: QMessageBox.warning( mainWindow, "Erreur bdd", "Erreur lors de l'inscritpion" ) return