#!/usr/bin/env python3 # Zeiterfassung import os.path from lib.web_ui import * from lib.admin import * from lib.login import * from lib.users import * from lib.touchscreen import * from lib.definitions import * from lib.api import * from lib.homepage import * import json import argparse from lib.web_ui import hash_password def 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(): # Einstellungen einlesen data = load_adminsettings() port = int(data["port"]) secret = data["secret"] list_users() homepage() def startup_message(): commandline_header() url_string = "" for i in list(app.urls): url_string += f"{i}, " url_string = url_string[0:-2] print("Oberfläche erreichbar unter: " + url_string) app.on_startup(startup_message) # Styling: ui.button.default_classes('normal-case') ui.button.default_props('rounded') ui.tab.default_classes('normal-case') ui.toggle.default_classes('normal-case') ui.toggle.default_props('rounded') ui.row.default_classes('items-baseline') ui.run(favicon='⏲', 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 is_docker(): scriptpath = "/app" backupfolder = "/backup" 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()