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)