2********************************************************************************
4@brief User authentication
5********************************************************************************
10from typing
import Optional, TYPE_CHECKING
18log = logging.getLogger(__title__)
23 @brief View of window.
32 @brief Class Authentication: Part of the module to hold the data of the current authentication session
33 @param ui : main window object
46 @brief Logout timer callback
50 self.
ui.btn_lock_clicked(b_auto_logout=
True)
51 self.
ui.set_status([
"Inactivity - automatic logout",
"Inaktivität - automatische Abmeldung"])
55 @brief Start auto logout.
57 f_timeout = self.
ui.model.c_config.get_logout_time()
62 @brief deactivate auto logout.
68 @brief Start auto logout.
73 def check_user_login(self, user: EUser | list[EUser], user_to_check: Optional[EUser | str] =
None) -> bool:
75 @brief Check if user log in.
76 @param user : check if this user is logged in or list
77 @param user_to_check : check this user (not logged in user)
78 @return status if this user is logged in
80 b_user_logged_in =
False
81 check_user = self.
s_login_user if (user_to_check
is None)
else user_to_check
82 if check_user
is not None:
83 if isinstance(user, list):
84 if check_user
in user:
85 b_user_logged_in =
True
87 if check_user[0] == EUser.B:
88 b_user_logged_in =
True
92 if check_user[0] == user:
93 b_user_logged_in =
True
95 if check_user == user:
96 b_user_logged_in =
True
97 return b_user_logged_in
101 @brief Get user position.
102 @param user : get position of this user
103 @return user position
106 get_user = self.
s_login_user if (user
is None)
else user
108 case EUser.LOCAL | EUser.FREE:
112 if get_user
is not None:
113 i_user_pos = int(get_user[1:])
116 self.
ui.set_status(
"Invalid User for B",
True)
120 self.
ui.set_status(f
"Invalid User for position: {get_user}",
True)
125 @brief Get user name from position
126 @param position : user position
130 user = EUser.LOCAL.value
132 user = EUser.B.value + str(position)
142 self.
ui.clear_status()
149 self.
e_view = EWindowView.MAIN
153 self.
ui.clear_status()
157 @brief Get status if articles view.
158 @return status of article view
Class Authentication: Part of the module to hold the data of the current authentication session.
None log_out(self)
Log out user.
bool get_article_view_state(self)
Get status if articles view.
None log_in(self)
Log in user.
None refresh_timer(self)
Start auto logout.
None start_timer(self)
Start auto logout.
None logout_callback(self)
Logout timer callback.
bool check_user_login(self, EUser|list[EUser] user, Optional[EUser|str] user_to_check=None)
Check if user log in.
None __init__(self, "MainWindow" ui)
None stop_timer(self)
deactivate auto logout.
int|None get_user_position(self, Optional[EUser|str] user=None)
Get user position.
str get_user_name_from_position(self, int position)
Get user name from position.