95 lines
2.9 KiB
Python
95 lines
2.9 KiB
Python
#!/usr/bin/env python3
|
|
# Zeiterfassung
|
|
|
|
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
|
|
|
|
|
|
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():
|
|
|
|
# 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("Weboberflä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.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()
|