summaryrefslogtreecommitdiff
path: root/src/app/mainLogin.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/mainLogin.py')
-rw-r--r--src/app/mainLogin.py113
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)