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
114
115
116
117
118
119
120
121
122
123
|
import re
from PyQt5.QtWidgets import QMessageBox
from src.gui import pageHome
from src.database import dbuser, dbsearch
def login(mainWindow, email, password) -> None:
user = dbuser.DbUser(mainWindow)
if user.check_exist_email(email):
res = user.check_user_credential(email, password)
if res:
search = dbsearch.DbSearch(mainWindow).get_user_account_by_userid(res)
QMessageBox.information(
mainWindow,
"Connexion",
"Vous êtes connecté"
)
mainWindow.userConnected = True
mainWindow.userId = str(search[0][0])
mainWindow.userEmail = search[0][1]
mainWindow.userInscriptionDate = search[0][2]
if search[0][3] == 0:
mainWindow.userStatus = "Admin"
elif search[0][3] == 1:
mainWindow.userStatus = "Pro"
elif search[0][3] == 2:
mainWindow.userStatus = "Client"
pageHome.main(mainWindow)
else:
QMessageBox.warning(
mainWindow,
"Connexion",
"Mauvaise combinaison mail & mot de passe"
)
else:
QMessageBox.warning(
mainWindow,
"Connexion",
"Mauvais email"
)
def register(mainWindow, email, password, userStatus) -> None:
user = dbuser.DbUser(mainWindow)
regNumb = "[0-9]"
regUpper = "[A-Z]"
regSpecial = "[`!@#$%^&*()_+\-=\[\]{};':\"\\|,.<>\/?~µ°€£]"
regEmail = "^[a-z0-9._-]+@[a-z0-9-]+\.[a-z]+"
# Si vide
if not email:
QMessageBox.warning(
mainWindow,
"Email invalide",
"Veuillez renseigner un email"
)
return
if not password:
QMessageBox.warning(
mainWindow,
"Mot de passe invalide",
"Veuillez renseigner un mot de passe"
)
return
if not userStatus:
QMessageBox.warning(
mainWindow,
"Mauvais rôle",
"Veuillez selectionner un rôle"
)
return
# les regex
if not re.fullmatch(regEmail, email):
QMessageBox.warning(
mainWindow,
"Email invalid",
"Email non conforme"
)
return
if len(password) < 8\
or not re.search(regNumb, password)\
or not re.search(regUpper, password)\
or not re.search(regSpecial, password):
QMessageBox.warning(
mainWindow,
"Mot de passe invalide",
("Le mot de passe doit avoir:\n"
"-Au moins 8 characters\n"
"-Une majuscule\n"
"-Un chiffre\n"
"-Un character spécial")
)
return
# si email deja présent
if user.check_exist_email(email):
QMessageBox.warning(
mainWindow,
"Email invalid",
"Email déja utilisé"
)
return
res = user.register_user(email, password, userStatus)
if res:
QMessageBox.information(
mainWindow,
"Inscription",
"Inscription réussie!"
)
return
else:
QMessageBox.warning(
mainWindow,
"Erreur bdd",
"Erreur lors de l'inscritpion"
)
return
|