1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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)
|