BonPrinter v1.2.0
Thermal Printer tool
Loading...
Searching...
No Matches
Authentication Class Reference

Class Authentication: Part of the module to hold the data of the current authentication session. More...

Public Member Functions

None __init__ (self, "MainWindow" ui)
bool check_user_login (self, EUser|list[EUser] user, Optional[EUser|str] user_to_check=None)
 Check if user log in.
bool get_article_view_state (self)
 Get status if articles view.
str get_user_name_from_position (self, int position)
 Get user name from position.
int|None get_user_position (self, Optional[EUser|str] user=None)
 Get user position.
None log_in (self)
 Log in user.
None log_out (self)
 Log out user.
None logout_callback (self)
 Logout timer callback.
None refresh_timer (self)
 Start auto logout.
None start_timer (self)
 Start auto logout.
None stop_timer (self)
 deactivate auto logout.

Public Attributes

bool b_login_state = False
 e_view = EWindowView.MAIN
 logout_timer = create_timer(parent=self.ui, callback=self.logout_callback)
str|None s_login_user = None
str s_pw = ""
 ui = ui

Detailed Description

Class Authentication: Part of the module to hold the data of the current authentication session.

Parameters
ui: main window object

Definition at line 30 of file authentication.py.

Constructor & Destructor Documentation

◆ __init__()

None __init__ ( self,
"MainWindow" ui )

Definition at line 36 of file authentication.py.

36 def __init__(self, ui: "MainWindow") -> None:
37 self.ui = ui
38 self.s_login_user: str | None = None
39 self.b_login_state = False
40 self.e_view = EWindowView.MAIN
41 self.s_pw = ""
42 self.logout_timer = create_timer(parent=self.ui, callback=self.logout_callback) # statusbar timer
43

Member Function Documentation

◆ check_user_login()

bool check_user_login ( self,
EUser | list[EUser] user,
Optional[EUser | str] user_to_check = None )

Check if user log in.

Parameters
user: check if this user is logged in or list
user_to_check: check this user (not logged in user)
Returns
status if this user is logged in

Definition at line 73 of file authentication.py.

73 def check_user_login(self, user: EUser | list[EUser], user_to_check: Optional[EUser | str] = None) -> bool:
74 """!
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
79 """
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
86 elif EUser.B in user:
87 if check_user[0] == EUser.B:
88 b_user_logged_in = True
89 else:
90 match user:
91 case EUser.B:
92 if check_user[0] == user:
93 b_user_logged_in = True
94 case _:
95 if check_user == user:
96 b_user_logged_in = True
97 return b_user_logged_in
98

◆ get_article_view_state()

bool get_article_view_state ( self)

Get status if articles view.

Returns
status of article view

Definition at line 155 of file authentication.py.

155 def get_article_view_state(self) -> bool:
156 """!
157 @brief Get status if articles view.
158 @return status of article view
159 """
160 return bool(self.b_login_state and (self.e_view == EWindowView.MAIN))

◆ get_user_name_from_position()

str get_user_name_from_position ( self,
int position )

Get user name from position.

Parameters
position: user position
Returns
user name

Definition at line 123 of file authentication.py.

123 def get_user_name_from_position(self, position: int) -> str:
124 """!
125 @brief Get user name from position
126 @param position : user position
127 @return user name
128 """
129 if position == 0:
130 user = EUser.LOCAL.value
131 else:
132 user = EUser.B.value + str(position)
133 return user
134

◆ get_user_position()

int | None get_user_position ( self,
Optional[EUser | str] user = None )

Get user position.

Parameters
user: get position of this user
Returns
user position

Definition at line 99 of file authentication.py.

99 def get_user_position(self, user: Optional[EUser | str] = None) -> int | None:
100 """!
101 @brief Get user position.
102 @param user : get position of this user
103 @return user position
104 """
105 i_user_pos = None
106 get_user = self.s_login_user if (user is None) else user
107 match get_user:
108 case EUser.LOCAL | EUser.FREE:
109 i_user_pos = 0
110 case _:
111 if self.check_user_login(EUser.B, user_to_check=get_user):
112 if get_user is not None:
113 i_user_pos = int(get_user[1:])
114 else:
115 i_user_pos = None
116 self.ui.set_status("Invalid User for B", True) # state not possible
117 else:
118 i_user_pos = None
119 if not self.check_user_login(EUser.USER, user_to_check=get_user):
120 self.ui.set_status(f"Invalid User for position: {get_user}", True) # state not possible
121 return i_user_pos
122

◆ log_in()

None log_in ( self)

Log in user.

Definition at line 135 of file authentication.py.

135 def log_in(self) -> None:
136 """!
137 @brief Log in user.
138 """
139 self.b_login_state = True
140 if self.check_user_login(EUser.B) or (self.check_user_login(EUser.FREE) and self.ui.model.c_config.get_free_auto_logout()):
141 self.start_timer()
142 self.ui.clear_status() # to update user in statusbar
143

◆ log_out()

None log_out ( self)

Log out user.

Definition at line 144 of file authentication.py.

144 def log_out(self) -> None:
145 """!
146 @brief Log out user.
147 """
148 if self.b_login_state:
149 self.e_view = EWindowView.MAIN
150 self.b_login_state = False
151 self.s_login_user = None
152 self.stop_timer()
153 self.ui.clear_status() # to update user in statusbar
154

◆ logout_callback()

None logout_callback ( self)

Logout timer callback.

Definition at line 44 of file authentication.py.

44 def logout_callback(self) -> None:
45 """!
46 @brief Logout timer callback
47 """
48 b_logout = True
49 if b_logout:
50 self.ui.btn_lock_clicked(b_auto_logout=True)
51 self.ui.set_status(["Inactivity - automatic logout", "Inaktivität - automatische Abmeldung"])
52

◆ refresh_timer()

None refresh_timer ( self)

Start auto logout.

Definition at line 66 of file authentication.py.

66 def refresh_timer(self) -> None:
67 """!
68 @brief Start auto logout.
69 """
70 if self.logout_timer.isActive():
71 self.start_timer()
72

◆ start_timer()

None start_timer ( self)

Start auto logout.

Definition at line 53 of file authentication.py.

53 def start_timer(self) -> None:
54 """!
55 @brief Start auto logout.
56 """
57 f_timeout = self.ui.model.c_config.get_logout_time()
58 self.logout_timer.start(int(f_timeout * 1000))
59

◆ stop_timer()

None stop_timer ( self)

deactivate auto logout.

Definition at line 60 of file authentication.py.

60 def stop_timer(self) -> None:
61 """!
62 @brief deactivate auto logout.
63 """
64 self.logout_timer.stop()
65

Member Data Documentation

◆ b_login_state

bool b_login_state = False

Definition at line 39 of file authentication.py.

◆ e_view

e_view = EWindowView.MAIN

Definition at line 40 of file authentication.py.

◆ logout_timer

logout_timer = create_timer(parent=self.ui, callback=self.logout_callback)

Definition at line 42 of file authentication.py.

◆ s_login_user

str | None s_login_user = None

Definition at line 38 of file authentication.py.

◆ s_pw

str s_pw = ""

Definition at line 41 of file authentication.py.

◆ ui

ui = ui

Definition at line 37 of file authentication.py.


The documentation for this class was generated from the following file: