summaryrefslogtreecommitdiff
path: root/src/app/mainRegister.py
diff options
context:
space:
mode:
authorDebulois <quentin@debulois.fr>2022-05-05 16:17:58 +0200
committerDebulois <quentin@debulois.fr>2022-05-05 16:17:58 +0200
commitd12ff4871844043e7a9e06a63a79c6e415ade936 (patch)
tree490625d179de9b754b5056d29b8726143098e61c /src/app/mainRegister.py
parent809f5c2c7ce0bdf05287c6f1b5ec1330efb0c469 (diff)
Tous les fichiers sont commentés
Diffstat (limited to 'src/app/mainRegister.py')
-rw-r--r--src/app/mainRegister.py71
1 files changed, 48 insertions, 23 deletions
diff --git a/src/app/mainRegister.py b/src/app/mainRegister.py
index ce9486f..568727d 100644
--- a/src/app/mainRegister.py
+++ b/src/app/mainRegister.py
@@ -1,5 +1,13 @@
+############################################################################
+# #
+# Description: Fenêtre principale avec les éléments pour s'enregistrer #
+# #
+############################################################################
+
+# Import pour effectuer des regex
import re
+# Import de PyQt5
from PyQt5.QtWidgets import (
QPushButton, QHBoxLayout,
QGroupBox, QLabel,
@@ -7,18 +15,23 @@ from PyQt5.QtWidgets import (
QVBoxLayout, QComboBox,
QGridLayout, QMessageBox
)
+# Import des éléments locals
from src.app import mainLogin, mainHome, mainLogout
from src.database.dbuser import DbUser
def core_register(mainWindow: object, email: str, password: str, userStatus: str) -> None:
- """"""
+ """
+ Fonction vérifiant les données fournies par l'utilisateur pour une inscription,
+ un email valide et un mot de passe un minimum robuste et utilise si tel est le cas
+ utilise une fonction de DbUser pour inscrire l'utilisateur.
+ """
dbuser: object = DbUser(mainWindow)
regNumb: str = "[0-9]"
regUpper: str = "[A-Z]"
regSpecial: str = "[`!@#$%^&*()_+\-=\[\]{};':\"\\|,.<>\/?~µ°€£]"
regEmail: str = "^[a-z0-9._-]+@[a-z0-9-]+\.[a-z]+"
- # Si vide
+ # Si l'email est vide
if not email:
QMessageBox.warning(
mainWindow,
@@ -27,6 +40,7 @@ def core_register(mainWindow: object, email: str, password: str, userStatus: str
)
return
+ # Si le mot de passe est vide
if not password:
QMessageBox.warning(
mainWindow,
@@ -35,6 +49,7 @@ def core_register(mainWindow: object, email: str, password: str, userStatus: str
)
return
+ # Si le status de l'utilisateur n'est pas défini
if userStatus == None:
QMessageBox.warning(
mainWindow,
@@ -43,7 +58,7 @@ def core_register(mainWindow: object, email: str, password: str, userStatus: str
)
return
- # les regex
+ # Si la regex pour verifier si l'email est valide
if not re.fullmatch(regEmail, email):
QMessageBox.warning(
mainWindow,
@@ -52,6 +67,7 @@ def core_register(mainWindow: object, email: str, password: str, userStatus: str
)
return
+ # Les regex pour savoir si le mot de passe est un minimum robuste
if len(password) < 8\
or not re.search(regNumb, password)\
or not re.search(regUpper, password)\
@@ -67,7 +83,7 @@ def core_register(mainWindow: object, email: str, password: str, userStatus: str
)
return
- # si email deja présent
+ # Si l'email est deja présent
if dbuser.check_exist_email(email):
QMessageBox.warning(
mainWindow,
@@ -76,6 +92,7 @@ def core_register(mainWindow: object, email: str, password: str, userStatus: str
)
return
+ # Enregistrement du nouvel utilisateur
succes: int = dbuser.register_user(email, password, userStatus)
if succes:
QMessageBox.information(
@@ -93,7 +110,11 @@ def core_register(mainWindow: object, email: str, password: str, userStatus: str
def window_main(mainWindow: object) -> None:
- """"""
+ """
+ Page principale de l'app d'où l'on peut s'inscrire
+ """
+ # On check si la variable userConnected de la classe principale est vrai ou pas
+ # pour savoir si un utilisateur est connecté, on crée le widget QLabel en conséquence
if not mainWindow.userConnected:
connexionState: object = QLabel("Non connecté.")
else:
@@ -101,9 +122,10 @@ def window_main(mainWindow: object) -> None:
f"Connecté: {mainWindow.userEmail} - {mainWindow.userStatus}"
)
+ # On rajoute les QPushBoutton pour retourner à l'accueil
btnAccueil: object = QPushButton("Accueil")
btnAccueil.clicked.connect(lambda: mainHome.window_main(mainWindow))
- #
+ # On adapte les widgets QPushButton en fonction
if not mainWindow.userConnected:
btnConnexion: object = QPushButton("Connexion")
btnConnexion.clicked.connect(lambda: mainLogin.window_main(mainWindow))
@@ -116,6 +138,7 @@ def window_main(mainWindow: object) -> None:
]
)
+ # Partie layout des boutons de navigation
layoutUser: object = QHBoxLayout()
layoutUser.addWidget(btnAccueil)
layoutUser.addStretch()
@@ -124,9 +147,10 @@ def window_main(mainWindow: object) -> None:
else:
layoutUser.addWidget(btnDeconnexion)
- grpUtilisateur: object = QGroupBox("Gestion de l'utilisateur")
- grpUtilisateur.setLayout(layoutUser)
- #
+ # GroupBox des boutons de navigation
+ grpUser: object = QGroupBox("Gestion de l'utilisateur")
+ grpUser.setLayout(layoutUser)
+ # Widgets pour s'inscrire
labMail: object = QLabel("Email")
leditMail: object = QLineEdit(maxLength=128)
labPassword: object = QLabel("Mot de passe")
@@ -134,10 +158,9 @@ def window_main(mainWindow: object) -> None:
leditPassword.setEchoMode(QLineEdit.Password)
labStatus: object = QLabel("Rôle")
comboStatus: object = QComboBox()
- comboStatus.addItem("Admin", 0)
- comboStatus.addItem("Pro", 1)
+ comboStatus.addItem("Admin", 0)
+ comboStatus.addItem("Pro", 1)
comboStatus.addItem("Client", 2)
- #
btnRegister: object = QPushButton("S'inscrire")
btnRegister.clicked.connect(
lambda: core_register(
@@ -147,30 +170,32 @@ def window_main(mainWindow: object) -> None:
comboStatus.currentData()
)
)
- #
+ # GridLayout pour les champs de l'inscription
LayoutInfoConnexion: object = QGridLayout()
- LayoutInfoConnexion.addWidget(labMail, 0, 0)
- LayoutInfoConnexion.addWidget(leditMail, 0, 1)
- LayoutInfoConnexion.addWidget(labPassword, 1, 0)
+ LayoutInfoConnexion.addWidget(labMail, 0, 0)
+ LayoutInfoConnexion.addWidget(leditMail, 0, 1)
+ LayoutInfoConnexion.addWidget(labPassword, 1, 0)
LayoutInfoConnexion.addWidget(leditPassword, 1, 1)
- LayoutInfoConnexion.addWidget(labStatus, 2, 0)
- LayoutInfoConnexion.addWidget(comboStatus, 2, 1)
- LayoutInfoConnexion.addWidget(btnRegister, 3, 1)
- #
+ LayoutInfoConnexion.addWidget(labStatus, 2, 0)
+ LayoutInfoConnexion.addWidget(comboStatus, 2, 1)
+ LayoutInfoConnexion.addWidget(btnRegister, 3, 1)
+ # Layout accueillant le GridLayout
layoutGroupConnexion: object = QHBoxLayout()
layoutGroupConnexion.addStretch()
layoutGroupConnexion.addLayout(LayoutInfoConnexion)
layoutGroupConnexion.addStretch()
+ # GroupBox du menu pour s'inscrire
grpConnexion: object = QGroupBox("Inscription")
grpConnexion.setLayout(layoutGroupConnexion)
- #
+ # Layout du widget principal
layoutMain: object = QVBoxLayout()
layoutMain.addWidget(connexionState)
- layoutMain.addWidget(grpUtilisateur)
+ layoutMain.addWidget(grpUser)
layoutMain.addStretch()
layoutMain.addWidget(grpConnexion)
layoutMain.addStretch()
- #
+ # On supprime l'ancien QWidget et on en crée un nouveau
+ # avec les éléments et la lyout de cette de la fonction
mainWindow.mainWidget.deleteLater()
mainWindow.mainWidget = QWidget()
mainWindow.mainWidget.setLayout(layoutMain)