diff options
Diffstat (limited to 'src/app/mainRegister.py')
| -rw-r--r-- | src/app/mainRegister.py | 71 |
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) |
