# Form implementation generated from reading ui file '/home/alexander/GitHub/Semesterapparate/ui/dialogs/login.ui' # # Created by: PySide6 UI code generator 6.5.3 # # WARNING: Any manual changes made to this file will be lost when pyuic6 is # run again. Do not edit this file unless you know what you are doing. import hashlib from PySide6 import QtCore, QtWidgets from src.backend.admin_console import AdminCommands from src.backend.database import Database class Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(218, 190) self.dialog = Dialog self.login_button = QtWidgets.QPushButton(parent=Dialog) self.login_button.setGeometry(QtCore.QRect(30, 140, 76, 32)) self.login_button.setObjectName("login_button") self.login_button.setText("Login") self.login_button.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus) self.cancel_button = QtWidgets.QPushButton(parent=Dialog) self.cancel_button.setGeometry(QtCore.QRect(120, 140, 76, 32)) self.cancel_button.setObjectName("cancel_button") self.cancel_button.setText("Cancel") self.cancel_button.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus) self.cancel_button.clicked.connect(self.cancel_buttonfn) self.label = QtWidgets.QLabel(parent=Dialog) self.label.setGeometry(QtCore.QRect(20, 40, 71, 21)) self.label.setObjectName("label") self.lineEdit = QtWidgets.QLineEdit(parent=Dialog) self.lineEdit.setGeometry(QtCore.QRect(80, 40, 113, 21)) self.lineEdit.setObjectName("lineEdit") # set strong focus to lineEdit self.lineEdit.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus) self.label_2 = QtWidgets.QLabel(parent=Dialog) self.label_2.setGeometry(QtCore.QRect(20, 80, 71, 21)) self.label_2.setObjectName("label_2") self.lineEdit_2 = QtWidgets.QLineEdit(parent=Dialog) self.lineEdit_2.setGeometry(QtCore.QRect(80, 80, 113, 21)) self.lineEdit_2.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhSensitiveData) # set echo mode to password self.lineEdit_2.setEchoMode(QtWidgets.QLineEdit.EchoMode.Password) self.lineEdit_2.setClearButtonEnabled(True) self.lineEdit_2.setObjectName("lineEdit_2") self.retranslateUi(Dialog) # if buttonbox accepted is clicked, launch login test self.login_button.clicked.connect(self.login) self.lresult = -1 self.lusername = "" QtCore.QMetaObject.connectSlotsByName(Dialog) def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate("Dialog", "Dialog")) self.label.setText(_translate("Dialog", "Username")) self.label_2.setText(_translate("Dialog", "Password")) def login(self): username = self.lineEdit.text() password = self.lineEdit_2.text() # print(type(username), password) # Assuming 'Database' is a class to interact with your database db = Database() hashed_password = hashlib.sha256(password.encode()).hexdigest() if len(db.getUsers()) == 0: AdminCommands().create_admin() self.lresult = 1 # Indicate successful login self.lusername = username self.dialog.accept() if db.login(username, hashed_password): self.lresult = 1 # Indicate successful login self.lusername = username self.dialog.accept() else: # Credentials are invalid, display a warning if username == "" or password == "": warning_dialog = QtWidgets.QMessageBox() warning_dialog.setIcon(QtWidgets.QMessageBox.Icon.Warning) warning_dialog.setText("Please enter a username and password.") warning_dialog.setWindowTitle("Login Failed") warning_dialog.exec() else: warning_dialog = QtWidgets.QMessageBox() warning_dialog.setIcon(QtWidgets.QMessageBox.Icon.Warning) warning_dialog.setText( "Invalid username or password. Please try again." ) warning_dialog.setWindowTitle("Login Failed") warning_dialog.exec() def cancel_buttonfn(self): self.dialog.reject() if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Dialog = QtWidgets.QDialog() ui = Ui_Dialog() ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec())