From 3035bb384c7a9e3c8322859d8227b323b261dbae Mon Sep 17 00:00:00 2001 From: Alexander Malzkuhn Date: Fri, 24 Oct 2025 12:41:20 +0200 Subject: [PATCH] =?UTF-8?q?Erste=20TODOs=20definiert=20f=C3=BCr=20die=20An?= =?UTF-8?q?passungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/definitions.py | 3 +- lib/login.py | 5 +- lib/users.py | 5 ++ requirements.txt | 131 +++++++++++++++++++++++++++++++++++++++++++++ settings.json | 18 +++++++ 5 files changed, 159 insertions(+), 3 deletions(-) create mode 100644 requirements.txt create mode 100644 settings.json diff --git a/lib/definitions.py b/lib/definitions.py index f8a4747..f695ba5 100644 --- a/lib/definitions.py +++ b/lib/definitions.py @@ -36,7 +36,8 @@ status_out = "ausgestempelt" # Standardadmin Settings: -standard_adminsettings = { "admin_user": "admin", +standard_adminsettings = { "admin_user": { + 0: "admin"}, "admin_password": "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918", "port": "8090", "secret": "ftgzuhjikg,mt5jn46uzer8sfi9okrmtzjhndfierko5zltjhdgise", diff --git a/lib/login.py b/lib/login.py index 25520ae..eb001d4 100644 --- a/lib/login.py +++ b/lib/login.py @@ -20,10 +20,11 @@ def page_login(): def login(): nonlocal data - if username.value == data["admin_user"]: - print(f"Input Hash: {hash_password(password.value)} gespeichert: {data['admin_password']}") + if username.value in get_admin_list(): + #TODO Loginprozess anpassen_ if hash_password(password.value) == data["admin_password"]: app.storage.user['authenticated'] = True + #TODO Weiterleitungsauswahl ob zum Stempeln oder Administration ui.navigate.to("/admin") else: ui.notify("Login fehlgeschlagen") diff --git a/lib/users.py b/lib/users.py index eb5c00a..d9d8aa1 100644 --- a/lib/users.py +++ b/lib/users.py @@ -578,3 +578,8 @@ def write_adminsetting(key: str, value): except KeyError: print(f"Kein Einstellungsschlüssel {key} vorhanden.") +def get_admin_list(): + adnin_settings = load_adminsettings() + admin_list = admin_settings["admin_user"] + return admin_list.values() + diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..0f30e3d --- /dev/null +++ b/requirements.txt @@ -0,0 +1,131 @@ +aiofiles==24.1.0 +aiohappyeyeballs==2.6.1 +aiohttp==3.11.16 +aiosignal==1.3.2 +altgraph==0.17.4 +annotated-types==0.7.0 +anyio==4.9.0 +attrs==25.3.0 +Babel==2.10.3 +beautifulsoup4==4.11.2 +bidict==0.23.1 +blinker==1.5 +Brlapi==0.8.4 +certifi==2025.1.31 +chardet==5.1.0 +charset-normalizer==3.0.1 +click==8.1.8 +crit==3.17.1 +cryptography==38.0.4 +cupshelpers==1.0 +dbus-python==1.3.2 +distro==1.8.0 +distro-info==1.5+deb12u1 +docker==5.0.3 +docker-compose==1.29.2 +dockerpty==0.4.1 +docopt==0.6.2 +docutils==0.21.2 +easygui==0.98.1 +fastapi==0.115.12 +feedgenerator==2.0.0 +frozenlist==1.5.0 +gitdb==4.0.9 +GitPython==3.1.30 +gpg==1.18.0 +h11==0.14.0 +html5lib==1.1 +httpcore==1.0.8 +httplib2==0.20.4 +httptools==0.6.4 +httpx==0.28.1 +idna==3.3 +ifaddr==0.2.0 +imaplib2==3.5 +invoke==2.0.0 +itsdangerous==2.2.0 +Jinja2==3.1.6 +jsonpointer==2.3 +jsonschema==4.10.3 +lazr.restfulclient==0.14.5 +lazr.uri==1.0.6 +louis==3.24.0 +lxml==4.9.2 +Mako==1.2.4.dev0 +Markdown==3.4.1 +markdown-it-py==2.1.0 +markdown2==2.5.3 +MarkupSafe==2.1.2 +mdurl==0.1.2 +menulibre==2.2.2 +multidict==6.4.3 +nicegui==2.15.0 +ntpsec==1.2.2 +numpy==2.2.5 +oauthlib==3.2.2 +olefile==0.46 +opencv-python==4.11.0.86 +orjson==3.10.16 +packaging==25.0 +pelican==4.8.0 +photocollage==1.4.5 +Pillow==9.4.0 +playsound3==3.2.3 +propcache==0.3.1 +protobuf==4.21.12 +pscript==0.7.7 +psutil==5.9.4 +pycairo==1.20.1 +pycups==2.0.1 +pydantic==2.11.3 +pydantic_core==2.33.1 +pyenchant==3.2.2 +Pygments==2.19.1 +PyGObject==3.42.2 +pygtkspellcheck==4.0.5 +pyinstaller==6.13.0 +pyinstaller-hooks-contrib==2025.4 +PyJWT==2.6.0 +pyparsing==3.0.9 +pyrsistent==0.18.1 +pysmbc==1.0.23 +python-apt==2.6.0 +python-dateutil==2.8.2 +python-dotenv==1.1.0 +python-engineio==4.12.0 +python-multipart==0.0.20 +python-socketio==5.13.0 +pytz==2022.7.1 +pyxdg==0.28 +PyYAML==6.0.2 +requests==2.32.3 +rfc3987==1.3.8 +rich==13.3.1 +roman==3.3 +segno==1.6.6 +simple-websocket==1.1.0 +six==1.16.0 +smmap==5.0.0 +sniffio==1.3.1 +soupsieve==2.3.2 +starlette==0.46.2 +texttable==1.6.7 +typing-inspection==0.4.0 +typing_extensions==4.13.2 +Unidecode==1.3.6 +uritemplate==4.1.1 +urllib3==2.4.0 +uvicorn==0.34.1 +uvloop==0.21.0 +vboxapi==1.0 +vbuild==0.8.2 +wadllib==1.3.6 +watchfiles==1.0.5 +webcolors==1.11.1 +webencodings==0.5.1 +websocket-client==1.2.3 +websockets==15.0.1 +wsproto==1.2.0 +wxPython==4.2.0 +xdg==5 +yarl==1.19.0 diff --git a/settings.json b/settings.json new file mode 100644 index 0000000..d18eb29 --- /dev/null +++ b/settings.json @@ -0,0 +1,18 @@ +{ + "admin_user": { + 0: "admin" + }, + "admin_password": "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918", + "port": "8090", + "secret": "ftgzuhjikg,mt5jn46uzer8sfi9okrmtzjhndfierko5zltjhdgise", + "times_on_touchscreen": true, + "photos_on_touchscreen": true, + "touchscreen": true, + "picture_height": 200, + "button_height": 300, + "user_notes": true, + "vacation_application": true, + "backup_folder": "/home/alexander/Dokumente/Python/Zeiterfassung/backup", + "backup_api_key": "6fed93dc4a35308b2c073a8a6f3284afe1fb9946", + "holidays": {} +} \ No newline at end of file