From 4def6c50fa1afa800f15f9246478ff9ce0faf1c2 Mon Sep 17 00:00:00 2001 From: Alexander Malzkuhn Date: Sun, 18 May 2025 17:44:41 +0200 Subject: [PATCH] =?UTF-8?q?Kommandozeilenparameter=20f=C3=BCr=20Adminzugan?= =?UTF-8?q?g=20eingef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin.py | 2 +- main.py | 53 +++++++++++++++++++++++++++++++++++++++++++++------ settings.json | 2 +- 3 files changed, 49 insertions(+), 8 deletions(-) diff --git a/admin.py b/admin.py index 7b9bc23..dfc6e2d 100644 --- a/admin.py +++ b/admin.py @@ -615,7 +615,7 @@ Dies kann nicht rückgängig gemacht werden!''') output_dict["photos_on_touchscreen"] = photo_switch.value output_dict["holidays"] = data["holidays"] json_dict = json.dumps(output_dict, indent=4) - with open(f"{scriptpath}/{usersettingsfilename}", "w") as outputfile: + with open(os.path.join(scriptpath, usersettingsfilename), "w") as outputfile: outputfile.write(json_dict) if int(old_port) != int(port.value): with ui.dialog() as dialog, ui.card(): diff --git a/main.py b/main.py index 937b047..723636e 100644 --- a/main.py +++ b/main.py @@ -10,6 +10,18 @@ from api import * from homepage import * import json +import argparse + +from web_ui import hash_password + + +class Commandline_Header: + message_string = f"{app_title} {app_version}" + underline = "" + for i in range(len(message_string)): + underline += "-" + print(message_string) + print(underline) def main(): @@ -24,12 +36,7 @@ def main(): def startup_message(): - message_string = f"{app_title} {app_version}" - underline = "" - for i in range(len(message_string)): - underline += "-" - print(message_string) - print(underline) + Commandline_Header() url_string = "" for i in list(app.urls): @@ -41,4 +48,38 @@ def main(): ui.run(favicon="favicon.svg", port=port, storage_secret=secret, language='de-DE', show_welcome_message=False) if __name__ in ("__main__", "__mp_main__"): + parser = argparse.ArgumentParser(description=f'{app_title} {app_version}') + parser.add_argument('--admin-access', help='Zugangsdaten für Administrator einstellen', action="store_true") + args = parser.parse_args() + if args.admin_access: + Commandline_Header() + print("Lade Administrationseinstellungen") + admin_settings = load_adminsettings() + print("Geben Sie den neuen Benutzernamen für den Administrationsbenutzer an:") + admin_user = input() + if admin_user == "": + print("Ungültiger Benutzername. Breche ab.") + quit() + print("Geben Sie das neue Passwort für den Administrationsbenutzer ein:") + admin_password = input() + if admin_password == "": + print("Ungültiges Passwort. Breche ab.") + quit() + print("Sie haben folgende Informationen eingegeben.") + print(f"Benutzername: {admin_user}") + print(f"Passwort: {admin_password}") + print("Sollen diese Einstellungen übernommen werden? j=Ja") + question = input() + if question == "j": + admin_settings["admin_user"] = admin_user + admin_settings["admin_password"] = hash_password(admin_password) + json_dict = json.dumps(admin_settings, indent=4) + with open(os.path.join(scriptpath, usersettingsfilename), "w") as outputfile: + outputfile.write(json_dict) + print("Daten geschrieben") + quit() + else: + print("Breche ab.") + quit() + main() diff --git a/settings.json b/settings.json index d02a2c2..67834a7 100644 --- a/settings.json +++ b/settings.json @@ -5,8 +5,8 @@ "secret": "ftgzuhjikg,mt5jn46uzer8sfi9okrmtzjhndfierko5zltjhdgise", "times_on_touchscreen": true, "photos_on_touchscreen": true, - "button_height": 300, "picture_height": 200, + "button_height": 300, "holidays": { "2025-01-01": "Neujahr", "2025-04-18": "Karfreitag",