Update auf Nicegui 3
Umstellung auf admin als User und Auswahl von Adminbenutzer
This commit is contained in:
parent
3035bb384c
commit
0b478b5e2e
31
lib/admin.py
31
lib/admin.py
@ -762,12 +762,14 @@ def page_admin():
|
|||||||
ui.label("Administrationsbenutzer:").classes('text-bold')
|
ui.label("Administrationsbenutzer:").classes('text-bold')
|
||||||
with ui.grid(columns=2).classes('items-baseline'):
|
with ui.grid(columns=2).classes('items-baseline'):
|
||||||
|
|
||||||
ui.label("Benutzername des Adminstrators:")
|
ui.label("Benutzer mit Administrationsrechten:")
|
||||||
admin_user = ui.input().tooltip("Geben Sie hier den Benutzernamen für den Adminstationsnutzer ein")
|
user_switch_list = []
|
||||||
admin_user.value = data["admin_user"]
|
with ui.element():
|
||||||
ui.label("Passwort des Administrators:")
|
for i in list_users():
|
||||||
admin_password = ui.input(password=True).tooltip("Geben Sie hier das Passwort für den Administationsnutzer ein. Merken Sie sich dieses Passwort gut. Es kann nicht über das Webinterface zurückgesetzt werden.")
|
user_switch_list.append(ui.switch(i))
|
||||||
|
for i in user_switch_list:
|
||||||
|
if i.text in get_admin_list():
|
||||||
|
i.value = True
|
||||||
secret = data["secret"]
|
secret = data["secret"]
|
||||||
|
|
||||||
with ui.card():
|
with ui.card():
|
||||||
@ -1045,11 +1047,20 @@ def page_admin():
|
|||||||
holiday_section()
|
holiday_section()
|
||||||
|
|
||||||
def save_admin_settings():
|
def save_admin_settings():
|
||||||
write_adminsetting("admin_user", admin_user.value)
|
admin_users = { }
|
||||||
if admin_password.value != "":
|
admin_counter = -1
|
||||||
write_adminsetting("admin_password", hash_password(admin_password.value))
|
for i in user_switch_list:
|
||||||
|
if i.value == True:
|
||||||
|
admin_counter += 1
|
||||||
|
admin_users[str(admin_counter)] = i.text
|
||||||
|
if len(admin_users) == 0:
|
||||||
|
with ui.dialog() as dialog, ui.card():
|
||||||
|
ui.label("Es wurde kein Administrationsbenutzer ausgewählt. Mindestens ein Benutzer muss Administrationsrechte haben.")
|
||||||
|
ui.button("OK", on_click=dialog.close)
|
||||||
|
dialog.open()
|
||||||
else:
|
else:
|
||||||
write_adminsetting("admin_password", data["admin_password"])
|
|
||||||
|
write_adminsetting("admin_user", admin_users)
|
||||||
write_adminsetting("port", port.value)
|
write_adminsetting("port", port.value)
|
||||||
write_adminsetting("secret", secret)
|
write_adminsetting("secret", secret)
|
||||||
write_adminsetting("touchscreen", touchscreen_switch.value)
|
write_adminsetting("touchscreen", touchscreen_switch.value)
|
||||||
|
|||||||
@ -38,7 +38,6 @@ status_out = "ausgestempelt"
|
|||||||
|
|
||||||
standard_adminsettings = { "admin_user": {
|
standard_adminsettings = { "admin_user": {
|
||||||
0: "admin"},
|
0: "admin"},
|
||||||
"admin_password": "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918",
|
|
||||||
"port": "8090",
|
"port": "8090",
|
||||||
"secret": "ftgzuhjikg,mt5jn46uzer8sfi9okrmtzjhndfierko5zltjhdgise",
|
"secret": "ftgzuhjikg,mt5jn46uzer8sfi9okrmtzjhndfierko5zltjhdgise",
|
||||||
"times_on_touchscreen": True,
|
"times_on_touchscreen": True,
|
||||||
@ -56,9 +55,9 @@ standard_adminsettings = { "admin_user": {
|
|||||||
# Standard User Settings:
|
# Standard User Settings:
|
||||||
|
|
||||||
standard_usersettings = {
|
standard_usersettings = {
|
||||||
"username": "default",
|
"username": "admin",
|
||||||
"fullname": "Standardbenutzer",
|
"fullname": "Administrator",
|
||||||
"password": "37a8eec1ce19687d132fe29051dca629d164e2c4958ba141d5f4133a33f0688f",
|
"password": "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918",
|
||||||
"api_key": "1234567890",
|
"api_key": "1234567890",
|
||||||
"workhours": { }
|
"workhours": { }
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,11 +19,11 @@ def page_login():
|
|||||||
|
|
||||||
def login():
|
def login():
|
||||||
nonlocal data
|
nonlocal data
|
||||||
|
print(username.value)
|
||||||
if username.value in get_admin_list():
|
if username.value in get_admin_list():
|
||||||
#TODO Loginprozess anpassen_
|
#TODO Loginprozess anpassen_
|
||||||
if hash_password(password.value) == data["admin_password"]:
|
if hash_password(password.value) == data["admin_password"]:
|
||||||
app.storage.user['authenticated'] = True
|
app.storage.user['admin_authenticated'] = True
|
||||||
#TODO Weiterleitungsauswahl ob zum Stempeln oder Administration
|
#TODO Weiterleitungsauswahl ob zum Stempeln oder Administration
|
||||||
ui.navigate.to("/admin")
|
ui.navigate.to("/admin")
|
||||||
else:
|
else:
|
||||||
|
|||||||
@ -580,6 +580,6 @@ def write_adminsetting(key: str, value):
|
|||||||
|
|
||||||
def get_admin_list():
|
def get_admin_list():
|
||||||
adnin_settings = load_adminsettings()
|
adnin_settings = load_adminsettings()
|
||||||
admin_list = admin_settings["admin_user"]
|
admin_list = load_adminsettings()["admin_user"]
|
||||||
return admin_list.values()
|
return admin_list.values()
|
||||||
|
|
||||||
|
|||||||
@ -38,10 +38,23 @@ class login_mask:
|
|||||||
def login():
|
def login():
|
||||||
nonlocal data
|
nonlocal data
|
||||||
|
|
||||||
if username.value == data["admin_user"]:
|
if username.value in get_admin_list():
|
||||||
if hash_password(password.value) == data["admin_password"]:
|
current_user = user(username.value)
|
||||||
|
if hash_password(password.value) == current_user.password:
|
||||||
|
with ui.dialog() as forward_dialog, ui.card():
|
||||||
|
ui.label("Wollen Sie den Administrationsbereich oder den Datenbereich aufrufen?")
|
||||||
|
def admin_area():
|
||||||
app.storage.user['admin_authenticated'] = True
|
app.storage.user['admin_authenticated'] = True
|
||||||
ui.navigate.to("/admin")
|
ui.navigate.to('/admin')
|
||||||
|
def time_area():
|
||||||
|
app.storage.user['active_user'] = current_user.username
|
||||||
|
ui.navigate.to(self.target)
|
||||||
|
with ui.grid(columns=2):
|
||||||
|
ui.button("Administrationsbereich", on_click=admin_area)
|
||||||
|
ui.button("Datenbereich", on_click=time_area)
|
||||||
|
|
||||||
|
forward_dialog.open()
|
||||||
|
#ui.navigate.to("/admin")
|
||||||
else:
|
else:
|
||||||
ui.notify("Login fehlgeschlagen")
|
ui.notify("Login fehlgeschlagen")
|
||||||
else:
|
else:
|
||||||
|
|||||||
4
main.py
4
main.py
@ -33,7 +33,7 @@ def main():
|
|||||||
|
|
||||||
list_users()
|
list_users()
|
||||||
|
|
||||||
homepage()
|
#homepage()
|
||||||
|
|
||||||
def startup_message():
|
def startup_message():
|
||||||
|
|
||||||
@ -54,7 +54,7 @@ def main():
|
|||||||
ui.toggle.default_props('rounded')
|
ui.toggle.default_props('rounded')
|
||||||
ui.row.default_classes('items-baseline')
|
ui.row.default_classes('items-baseline')
|
||||||
|
|
||||||
ui.run(favicon='⏲', port=port, storage_secret=secret, language='de-DE', show_welcome_message=False)
|
ui.run(root=homepage, favicon='⏲', port=port, storage_secret=secret, language='de-DE', show_welcome_message=False)
|
||||||
|
|
||||||
if __name__ in ("__main__", "__mp_main__"):
|
if __name__ in ("__main__", "__mp_main__"):
|
||||||
parser = argparse.ArgumentParser(description=f'{app_title} {app_version}')
|
parser = argparse.ArgumentParser(description=f'{app_title} {app_version}')
|
||||||
|
|||||||
@ -1,8 +1,7 @@
|
|||||||
{
|
{
|
||||||
"admin_user": {
|
"admin_user": {
|
||||||
0: "admin"
|
"0": "admin"
|
||||||
},
|
},
|
||||||
"admin_password": "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918",
|
|
||||||
"port": "8090",
|
"port": "8090",
|
||||||
"secret": "ftgzuhjikg,mt5jn46uzer8sfi9okrmtzjhndfierko5zltjhdgise",
|
"secret": "ftgzuhjikg,mt5jn46uzer8sfi9okrmtzjhndfierko5zltjhdgise",
|
||||||
"times_on_touchscreen": true,
|
"times_on_touchscreen": true,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user