summaryrefslogtreecommitdiff
path: root/src/app/mainLogin.py
blob: 617df733f0982e9e657ebe1a3d47079b83c362d2 (plain)
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)