diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/funcSearch.py | 3 | ||||
| -rw-r--r-- | src/core/funcUser.py | 123 | ||||
| -rw-r--r-- | src/core/user.py | 25 |
3 files changed, 126 insertions, 25 deletions
diff --git a/src/core/funcSearch.py b/src/core/funcSearch.py new file mode 100644 index 0000000..664a24b --- /dev/null +++ b/src/core/funcSearch.py @@ -0,0 +1,3 @@ + +def search_by_job_id(mainWindow, jobId) -> None: + print(jobId) diff --git a/src/core/funcUser.py b/src/core/funcUser.py new file mode 100644 index 0000000..5b5ac2c --- /dev/null +++ b/src/core/funcUser.py @@ -0,0 +1,123 @@ + +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 diff --git a/src/core/user.py b/src/core/user.py deleted file mode 100644 index 1d9db8d..0000000 --- a/src/core/user.py +++ /dev/null @@ -1,25 +0,0 @@ -from src.database import dbuser -from PyQt5.QtWidgets import QMessageBox - -def login(mainWindow, email, password): - user = dbuser.DbUser() - if user.check_exist_email(email): - res = user.check_user_credential(email, password) - if res: - QMessageBox.information( - mainWindow, - "Connexion", - "Vous êtes connecté" - ) - else: - QMessageBox.warning( - mainWindow, - "Connexion", - "Mauvaise combinaison mail & mot de passe" - ) - else: - QMessageBox.warning( - mainWindow, - "Connexion", - "Mauvais email" - ) |
