diff --git a/lib/homepage.py b/lib/homepage.py index 092bad3..71234bc 100644 --- a/lib/homepage.py +++ b/lib/homepage.py @@ -199,6 +199,7 @@ def homepage(): overviews = ui.tab('Übersichten') absence = ui.tab('Urlaubsantrag') absence.set_visibility(load_adminsettings()["vacation_application"]) + pw_change = ui.tab("Passwort") with ui.grid(columns='1fr auto 1fr').classes('w-full items-center'): ui.space() @@ -281,6 +282,31 @@ def homepage(): ui.button("Zurückziehen", on_click=retract_va).tooltip("Hiermit wird der oben gewählte Urlaubsantrag zurückgezogen.").classes('w-full') open_vacation_applications() + with ui.tab_panel(pw_change): + ui.label("Passwort ändern").classes('font-bold') + with ui.grid(columns='auto auto').classes('items-end'): + ui.label("Altes Passwort:") + old_pw_input = ui.input(password=True) + ui.label("Neues Passwort:") + new_pw_input = ui.input(password=True) + ui.label("Neues Passwort bestätigen:") + new_pw_confirm_input = ui.input(password=True) + def revert_pw_inputs(): + old_pw_input.value = "" + new_pw_input.value = "" + new_pw_confirm_input.value = "" + def save_new_password(): + if hash_password(old_pw_input.value) == current_user.password: + if new_pw_input.value == new_pw_confirm_input.value: + current_user.password = hash_password(new_pw_input.value) + current_user.write_settings() + ui.notify("Neues Passwort gespeichert") + else: + ui.notify("Passwortbestätigung stimmt nicht überein") + else: + ui.notify("Altes Passwort nicht korrekt") + ui.button("Speichern", on_click=save_new_password) + ui.button("Zurücksetzen", on_click=revert_pw_inputs) ui.space() else: