From d12ff4871844043e7a9e06a63a79c6e415ade936 Mon Sep 17 00:00:00 2001 From: Debulois Date: Thu, 5 May 2022 16:17:58 +0200 Subject: Tous les fichiers sont commentés MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/mainLogin.py | 65 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 43 insertions(+), 22 deletions(-) (limited to 'src/app/mainLogin.py') diff --git a/src/app/mainLogin.py b/src/app/mainLogin.py index 617df73..bd3f916 100644 --- a/src/app/mainLogin.py +++ b/src/app/mainLogin.py @@ -1,4 +1,11 @@ +############################################################################ +# # +# Description: Fenêtre principale avec les éléments pour se connecter # +# # +############################################################################ + +# Import des éléments de PyQt5 from PyQt5.QtWidgets import ( QPushButton, QHBoxLayout, QGroupBox, QLabel, @@ -6,24 +13,32 @@ from PyQt5.QtWidgets import ( QVBoxLayout, QGridLayout, QMessageBox ) +# Import des éléments locals from src.app import mainHome, mainRegister from src.database.dbuser import DbUser from src.database.dbsearch import DbSearch def core_login(mainWindow: object, email: str, password: str) -> None: - """""" + """ + Fait appel aux methodes de DbUser et DbSearch pour vérifier si + les informations de connections fournies sont correctes et auquel cas + modifie les variables de la classe principale de l'app afin de + valider la connection de l'utilisateur. + """ + # Instanciation des classes permettant d'accéder à la BDD dbuser: object = DbUser(mainWindow) dbsearch: object = DbSearch(mainWindow) + # Si l'email exist if dbuser.check_exist_email(email): + # On vérifi l'assiocation email - pass userId = dbuser.check_user_credential(email, password) + # Si ça match, on a l'userId associé if userId: + # On récupère les infos de l'utilisateur userAccount = dbsearch.get_user_account_by_userid(userId)[0] - QMessageBox.information( - mainWindow, - "Connexion", - "Vous êtes connecté" - ) + # On associe ces valeur au variable de la classe principale + # pour connecter l'utilisateur mainWindow.userConnected = True mainWindow.userId = userId mainWindow.userEmail = userAccount[1] @@ -34,12 +49,19 @@ def core_login(mainWindow: object, email: str, password: str) -> None: mainWindow.userStatus = "Pro" elif userAccount[3] == 2: mainWindow.userStatus = "Client" + # Un Qmessage pour prévenir que c'est OK + QMessageBox.information( + mainWindow, + "Connexion", + "Vous êtes connecté" + ) + # On redirige à l'accueil mainHome.window_main(mainWindow, True) else: QMessageBox.warning( mainWindow, "Connexion", - "Mauvaise combinaison mail & mot de passe" + "Mauvais mot de passe" ) else: QMessageBox.warning( @@ -50,26 +72,24 @@ def core_login(mainWindow: object, email: str, password: str) -> None: def window_main(mainWindow: object) -> None: - """""" - if not mainWindow.userConnected: - connState: object = QLabel("Non connecté.") - else: - connState: object = QLabel( - f"Connecté: {mainWindow.userEmail} - {mainWindow.userStatus}" - ) - + """ + Page principale de l'app d'où l'on peut se connecter + """ + #Création du widget info sur la connection + connState: object = QLabel("Non connecté.") + # Widgets des boutons de navigation btnAccueil: object = QPushButton("Accueil") btnAccueil.clicked.connect(lambda: mainHome.window_main(mainWindow)) btnInscription: object = QPushButton("Inscription") btnInscription.clicked.connect(lambda: mainRegister.window_main(mainWindow)) - # + # Partie layout des boutons de navigation layUser: object = QHBoxLayout() layUser.addWidget(btnAccueil) layUser.addStretch() layUser.addWidget(btnInscription) grpUtilisateur: object = QGroupBox("Gestion de l'utilisateur") grpUtilisateur.setLayout(layUser) - # + # Widgets du menu de conenxion labMail: object = QLabel("Email") inpMail: object = QLineEdit(maxLength=128) labPassword: object = QLabel("Mot de passe") @@ -84,29 +104,30 @@ def window_main(mainWindow: object) -> None: inpPassword.text() ) ) - # + # Grid layout du menu de connexion layGrid: object = QGridLayout() layGrid.addWidget(labMail, 0, 0) layGrid.addWidget(inpMail, 0, 1) layGrid.addWidget(labPassword, 1, 0) layGrid.addWidget(inpPassword, 1, 1) layGrid.addWidget(btnConnexion, 2, 1) - # + # Layout du menu de connecion accueillant le QGridLayout layLogin: object = QHBoxLayout() layLogin.addStretch() layLogin.addLayout(layGrid) layLogin.addStretch() - # + # GroupBox du menu de connexion grpLogin: object = QGroupBox("Connexion") grpLogin.setLayout(layLogin) - # + # Layout du widget principal layMain: object = QVBoxLayout() layMain.addWidget(connState) layMain.addWidget(grpUtilisateur) layMain.addStretch() layMain.addWidget(grpLogin) layMain.addStretch() - # + # On supprime l'ancien QWidget et on en crée un nouveau + # avec les éléments et la lyout de cette de la fonction mainWindow.mainWidget.deleteLater() mainWindow.mainWidget = QWidget() mainWindow.mainWidget.setLayout(layMain) -- cgit v1.2.3