op13-cp-3/controllers/auth_controller.py
2026-02-11 14:57:06 +03:00

48 lines
1.3 KiB
Python

from models.user_model import UserModel
from views.login_view import LoginView
from controllers.catalog_controller import CatalogController
class AuthController:
def __init__(self, database):
self.database = database
self.model = UserModel(database)
self.view = LoginView()
self.view.login_button.clicked.connect(
self.login
)
self.view.guest_button.clicked.connect(
self.login_as_guest
)
def show(self):
self.view.show()
def login(self):
login = self.view.login_input.text()
password = self.view.password_input.text()
user = self.model.authenticate(login, password)
if user:
self.open_catalog(
user["full_name"],
user["role_name"],
)
else:
self.view.status_label.setText(
"Неверный логин или пароль"
)
def login_as_guest(self):
self.open_catalog("Гость", "Гость")
def open_catalog(self, full_name: str, role: str):
self.catalog = CatalogController(
self.database,
full_name,
role,
self,
)
self.catalog.show()
self.view.close()