Grundlegende Login Funktion
Grundlegende Loginfunktionen Admin Maske begonnen
This commit is contained in:
parent
1a9e4aea14
commit
98ed925cde
4
settings.json
Normal file
4
settings.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"admin_user": "admin",
|
||||
"admin_password": "123456"
|
||||
}
|
75
web_ui.py
75
web_ui.py
@ -1,11 +1,78 @@
|
||||
from gi.overrides.keysyms import value
|
||||
from nicegui import ui, events
|
||||
from nicegui import ui, app
|
||||
from users import *
|
||||
from definitions import *
|
||||
import hashlib
|
||||
|
||||
def cookie_hash(user, password):
|
||||
return hashlib.sha256(b"{user}{app.storage.user['id']}{password}").hexdigest()
|
||||
|
||||
def adminsettings():
|
||||
# Settingsdatei einlesen
|
||||
try:
|
||||
with open(f"{scriptpath}/{usersettingsfilename}") as json_file:
|
||||
data = json.load(json_file)
|
||||
json_file.close()
|
||||
return(data)
|
||||
except:
|
||||
return(-1)
|
||||
|
||||
@ui.page('/login')
|
||||
def page_login():
|
||||
ui.label('Loginseite')
|
||||
|
||||
# Settingsdatei einlesen
|
||||
data = adminsettings()
|
||||
|
||||
def login():
|
||||
nonlocal data
|
||||
|
||||
if username.value == data["admin_user"]:
|
||||
if password.value == data["admin_password"]:
|
||||
active_login = cookie_hash(data["admin_user"], data["admin_password"])
|
||||
app.storage.user['secret'] = active_login
|
||||
ui.navigate.to("/admin")
|
||||
else:
|
||||
ui.notify("Login fehlgeschlagen")
|
||||
|
||||
ui.markdown(f"## {app_title} {app_version}")
|
||||
ui.markdown("Bitte einloggen")
|
||||
with ui.grid(columns=2):
|
||||
ui.markdown("Benutzer:")
|
||||
username = ui.input('Benutzername')
|
||||
ui.markdown("Passwort:")
|
||||
password = ui.input('Passwort', password=True)
|
||||
ui.button(text="Login", on_click=lambda: login())
|
||||
|
||||
@ui.page('/admin')
|
||||
def page_admin():
|
||||
data = adminsettings()
|
||||
active_login = cookie_hash(data["admin_user"], data["admin_password"])
|
||||
try:
|
||||
browser_cookie = app.storage.user['secret']
|
||||
except:
|
||||
browser_cookie = ""
|
||||
|
||||
# Adminseite
|
||||
if browser_cookie == active_login:
|
||||
ui.markdown(f"##{app_title} {app_version}")
|
||||
ui.markdown("###Administrator Benutzer")
|
||||
with ui.grid(columns=2):
|
||||
ui.label("Benutzername des Adminstrators")
|
||||
admin_user = ui.input()
|
||||
admin_user.value = data["admin_user"]
|
||||
ui.label("Passwort des Adminsistrators")
|
||||
admin_password = ui.input(password=True)
|
||||
admin_password.value = data["admin_password"]
|
||||
|
||||
ui.markdown("###Benutzerverwaltung")
|
||||
userlist = list_users()
|
||||
with ui.grid(columns=2):
|
||||
for name in userlist:
|
||||
ui.label(name)
|
||||
ui.button("Löschen")
|
||||
|
||||
# Alternativ zur Loginseite navigieren
|
||||
else:
|
||||
ui.navigate.to("/login")
|
||||
|
||||
@ui.page('/stamping')
|
||||
def page_stamping():
|
||||
@ -72,6 +139,6 @@ def page_userlist():
|
||||
button = ui.button(text=name, on_click=lambda name=name:click_button(name) )
|
||||
buttons[name] = button
|
||||
|
||||
ui.run(port=8090)
|
||||
ui.run(port=8090, storage_secret="test")
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user