diff options
Diffstat (limited to 'src/app/mainLogin.py')
| -rw-r--r-- | src/app/mainLogin.py | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/src/app/mainLogin.py b/src/app/mainLogin.py new file mode 100644 index 0000000..617df73 --- /dev/null +++ b/src/app/mainLogin.py @@ -0,0 +1,113 @@ + +from PyQt5.QtWidgets import ( + QPushButton, QHBoxLayout, + QGroupBox, QLabel, + QLineEdit, QWidget, + QVBoxLayout, QGridLayout, + QMessageBox +) +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: + """""" + dbuser: object = DbUser(mainWindow) + dbsearch: object = DbSearch(mainWindow) + if dbuser.check_exist_email(email): + userId = dbuser.check_user_credential(email, password) + if userId: + userAccount = dbsearch.get_user_account_by_userid(userId)[0] + QMessageBox.information( + mainWindow, + "Connexion", + "Vous êtes connecté" + ) + mainWindow.userConnected = True + mainWindow.userId = userId + mainWindow.userEmail = userAccount[1] + mainWindow.userInscrDate = userAccount[2] + if userAccount[3] == 0: + mainWindow.userStatus = "Admin" + elif userAccount[3] == 1: + mainWindow.userStatus = "Pro" + elif userAccount[3] == 2: + mainWindow.userStatus = "Client" + mainHome.window_main(mainWindow, True) + else: + QMessageBox.warning( + mainWindow, + "Connexion", + "Mauvaise combinaison mail & mot de passe" + ) + else: + QMessageBox.warning( + mainWindow, + "Connexion", + "Mauvais email" + ) + + +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}" + ) + + btnAccueil: object = QPushButton("Accueil") + btnAccueil.clicked.connect(lambda: mainHome.window_main(mainWindow)) + btnInscription: object = QPushButton("Inscription") + btnInscription.clicked.connect(lambda: mainRegister.window_main(mainWindow)) + # + layUser: object = QHBoxLayout() + layUser.addWidget(btnAccueil) + layUser.addStretch() + layUser.addWidget(btnInscription) + grpUtilisateur: object = QGroupBox("Gestion de l'utilisateur") + grpUtilisateur.setLayout(layUser) + # + labMail: object = QLabel("Email") + inpMail: object = QLineEdit(maxLength=128) + labPassword: object = QLabel("Mot de passe") + inpPassword: object = QLineEdit(maxLength=128) + inpPassword.setEchoMode(QLineEdit.Password) + btnConnexion: object = QPushButton("Connexion") + btnConnexion.clicked.connect( + lambda: + core_login( + mainWindow, + inpMail.text(), + inpPassword.text() + ) + ) + # + 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) + # + layLogin: object = QHBoxLayout() + layLogin.addStretch() + layLogin.addLayout(layGrid) + layLogin.addStretch() + # + grpLogin: object = QGroupBox("Connexion") + grpLogin.setLayout(layLogin) + # + layMain: object = QVBoxLayout() + layMain.addWidget(connState) + layMain.addWidget(grpUtilisateur) + layMain.addStretch() + layMain.addWidget(grpLogin) + layMain.addStretch() + # + mainWindow.mainWidget.deleteLater() + mainWindow.mainWidget = QWidget() + mainWindow.mainWidget.setLayout(layMain) + mainWindow.setCentralWidget(mainWindow.mainWidget) |
