2023-08-25 16:51:03 +00:00
|
|
|
import platform
|
|
|
|
|
import subprocess
|
2022-06-01 16:37:19 +00:00
|
|
|
import sys
|
2024-04-23 09:15:23 +00:00
|
|
|
from components import ArchiveSynchronizer
|
2022-06-01 16:37:19 +00:00
|
|
|
from lib.db import Session, Users
|
|
|
|
|
from PyQt5.QtCore import QTimer, pyqtSignal
|
2023-08-25 16:51:03 +00:00
|
|
|
from PyQt5.QtGui import QKeySequence, QIcon
|
2022-06-01 16:37:19 +00:00
|
|
|
from PyQt5.QtWidgets import QMessageBox, QShortcut
|
|
|
|
|
from ui.widget import Widget
|
|
|
|
|
|
2022-11-07 15:26:57 +00:00
|
|
|
# TESTING
|
|
|
|
|
login_count = 0
|
|
|
|
|
# /TESTING
|
|
|
|
|
|
2022-06-01 16:37:19 +00:00
|
|
|
|
|
|
|
|
class Login(Widget):
|
|
|
|
|
wrong_credentials = pyqtSignal()
|
|
|
|
|
successful_login = pyqtSignal()
|
|
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
|
super().__init__()
|
|
|
|
|
self.welcome_l.setText("BENVENUTO, PER INIZIARE IL COLLAUDO, EFFETTUA L'ACCESSO:")
|
|
|
|
|
self.user_cb.addItems(Users.get_usernames())
|
2024-10-25 15:11:00 +00:00
|
|
|
self.archive_synch= ArchiveSynchronizer()
|
2024-04-23 09:15:23 +00:00
|
|
|
|
2022-06-01 16:37:19 +00:00
|
|
|
QShortcut(QKeySequence("Return"), self).activated.connect(self.login_b.click)
|
2022-09-06 15:35:49 +00:00
|
|
|
QShortcut(QKeySequence("Enter"), self).activated.connect(self.login_b.click)
|
2022-06-01 16:37:19 +00:00
|
|
|
self.login_b.clicked.connect(self.try_login)
|
2023-08-25 16:51:03 +00:00
|
|
|
self.ICON_EDIT = QIcon('src/ui/icons/edit.png')
|
|
|
|
|
self.psw_edit_b.setIcon(self.ICON_EDIT)
|
|
|
|
|
self.psw_edit_b.clicked.connect(self.show_osk)
|
2022-06-01 16:37:19 +00:00
|
|
|
# TESTING
|
|
|
|
|
if "--auto-login-admin" in sys.argv:
|
|
|
|
|
self.user_cb.setCurrentText("ADMIN")
|
|
|
|
|
self.password_le.setText("123123")
|
2022-11-15 16:17:59 +00:00
|
|
|
elif "--auto-login-user" in sys.argv or "--test" in sys.argv:
|
2022-06-01 16:37:19 +00:00
|
|
|
self.user_cb.setCurrentText("USER")
|
|
|
|
|
self.password_le.setText("user")
|
|
|
|
|
if "--auto-login-admin" in sys.argv or "--auto-login-user" in sys.argv or "--test" in sys.argv:
|
2022-11-07 15:26:57 +00:00
|
|
|
global login_count
|
|
|
|
|
if login_count <= 0:
|
|
|
|
|
self.test_timer = QTimer()
|
|
|
|
|
self.test_timer.setSingleShot(True)
|
|
|
|
|
self.test_timer.timeout.connect(self.login_b.clicked.emit)
|
|
|
|
|
self.test_timer.start(500)
|
2022-06-01 16:37:19 +00:00
|
|
|
# /TESTING
|
|
|
|
|
|
|
|
|
|
def try_login(self):
|
|
|
|
|
user = self.user_cb.currentText().upper()
|
|
|
|
|
password = self.password_le.text()
|
|
|
|
|
session = Users.login(user, password)
|
|
|
|
|
if type(session) is not Session:
|
|
|
|
|
self.wrong_credentials.emit()
|
|
|
|
|
QMessageBox.critical(None, "Errore login", "Credenziali errate")
|
|
|
|
|
else:
|
2022-11-07 15:26:57 +00:00
|
|
|
# TESTING
|
|
|
|
|
global login_count
|
|
|
|
|
login_count += 1
|
|
|
|
|
# /TESTING
|
2022-06-01 16:37:19 +00:00
|
|
|
self.successful_login.emit()
|
2023-08-25 16:51:03 +00:00
|
|
|
|
|
|
|
|
def show_osk(self):
|
|
|
|
|
self.password_le.setFocus()
|
|
|
|
|
if platform.system().lower() == 'windows':
|
2024-02-23 17:34:17 +00:00
|
|
|
subprocess.Popen(["open_osk.bat"]) # OPEN ON SCREEN KEYBOARD
|