From 5e23fcc7de84adf23ea52ae0858f31b8934fabd3 Mon Sep 17 00:00:00 2001 From: Debulois Date: Wed, 27 Apr 2022 13:17:19 +0200 Subject: Système de recherche MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/coreSearch.py | 43 +++++++++++++++++ src/core/coreUser.py | 121 ++++++++++++++++++++++++++++++++++++++++++++++++ src/core/funcSearch.py | 3 -- src/core/funcUser.py | 123 ------------------------------------------------- 4 files changed, 164 insertions(+), 126 deletions(-) create mode 100644 src/core/coreSearch.py create mode 100644 src/core/coreUser.py delete mode 100644 src/core/funcSearch.py delete mode 100644 src/core/funcUser.py (limited to 'src/core') diff --git a/src/core/coreSearch.py b/src/core/coreSearch.py new file mode 100644 index 0000000..47f2f69 --- /dev/null +++ b/src/core/coreSearch.py @@ -0,0 +1,43 @@ + +from src.database import dbsearch +from src.gui import windowRecherche +from PyQt5.QtWidgets import QMessageBox + + +def core_search_id(mainWindow: object, jobId: int) -> None: + search: object = dbsearch.DbSearch(mainWindow) + resRecherche: tuple = search.get_all_pro_by_jobid(jobId) + if resRecherche: + core_search_main(mainWindow, resRecherche) + else: + QMessageBox.information( + mainWindow, + "Résultat", + "Aucun résultat." + ) + +def core_search_name(mainWindow: object, name: str) -> None: + search: object = dbsearch.DbSearch(mainWindow) + resRecherche: tuple = search.get_pro_info_by_lastname(name) + if resRecherche: + core_search_main(mainWindow, resRecherche) + else: + QMessageBox.information( + mainWindow, + "Résultat", + "Aucun résultat." + ) + +def core_search_main(mainWindow: object, resRecherche: tuple) -> None: + search: object = dbsearch.DbSearch(mainWindow) + results: list = [] + for i in resRecherche: + proInfo: dict = {} + proInfo["id"] = i[0] + resJobs = search.get_pro_job_by_proid(proInfo["id"]) + proInfo["text"] = list(i[1:]) + proInfo["text"].insert(2, ", ".join([j[2] for j in resJobs])) + proInfo["text"] = " - ".join(proInfo["text"]) + results.append(proInfo) + + windowRecherche.main(mainWindow, results) 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" + ) diff --git a/src/core/funcSearch.py b/src/core/funcSearch.py deleted file mode 100644 index 664a24b..0000000 --- a/src/core/funcSearch.py +++ /dev/null @@ -1,3 +0,0 @@ - -def search_by_job_id(mainWindow, jobId) -> None: - print(jobId) diff --git a/src/core/funcUser.py b/src/core/funcUser.py deleted file mode 100644 index 5b5ac2c..0000000 --- a/src/core/funcUser.py +++ /dev/null @@ -1,123 +0,0 @@ - -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 -- cgit v1.2.3