From 3a2ff20815c49aa7aa8d304cea774501c4a666bb Mon Sep 17 00:00:00 2001 From: Erik Thiele Date: Wed, 23 Sep 2026 16:50:01 +0200 Subject: [PATCH] feat: Willkommensseite ohne Login erreichbar Co-Authored-By: Claude Opus 5 --- app.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/app.py b/app.py index f3e6ff9..4aa6108 100755 --- a/app.py +++ b/app.py @@ -942,7 +942,6 @@ def mfa_disable(): # ------------------------------------------------- @app.route("/willkommen", methods=["GET", "POST"]) @app.route("/customer", methods=["GET", "POST"]) -@login_required def add_customer(): """ Formular für die Willkommensseite: @@ -960,14 +959,21 @@ def add_customer(): logo_hinweise = [] site = request.args.get("site") or request.form.get("site") or "" - # Fallback auf ersten für den User zugänglichen Standort - if not site: - config = load_config() - sites = get_accessible_sites(config, current_user) - site = sites[0] if sites else "" + # Diese Seite ist bewusst ohne Login erreichbar: Am Empfang soll eine + # Begruessung auch ohne Benutzerkonto erstellt werden koennen. Ein + # angemeldeter User sieht weiterhin nur seine freigegebenen Standorte. + config = load_config() + if current_user.is_authenticated: + erlaubte_sites = get_accessible_sites(config, current_user) + else: + erlaubte_sites = get_site_list(config) - # Prüfen, ob der User Zugriff auf den Standort hat - if site and not current_user.can_access_site(site): + # Fallback auf den ersten zugaenglichen Standort + if not site: + site = erlaubte_sites[0] if erlaubte_sites else "" + + # Zugriff auf den Standort pruefen + if site and site not in erlaubte_sites: abort(403) remember_site(site) @@ -1072,7 +1078,7 @@ def add_customer(): "contacts": list(contacts) } save_config(config) - add_history_entry("customer_added", f"Kunden ({', '.join(valid_names)}) zur Willkommensseite an Standort '{site}' hinzugefügt (Screens: {', '.join(targets)})", current_user.email) + add_history_entry("customer_added", f"Kunden ({', '.join(valid_names)}) zur Willkommensseite an Standort '{site}' hinzugefügt (Screens: {', '.join(targets)})", current_user.email if current_user.is_authenticated else "nicht angemeldet") success = (f"✅ Willkommensseite mit {len(valid_names)} Kunden erstellt " f"– angezeigt auf: {', '.join(targets)}") if valid_until: