summaryrefslogtreecommitdiff
path: root/src/core/funcUser.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/funcUser.py')
-rw-r--r--src/core/funcUser.py123
1 files changed, 123 insertions, 0 deletions
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