summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/funcSearch.py3
-rw-r--r--src/core/funcUser.py123
-rw-r--r--src/core/user.py25
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"
- )