feat: Willkommensseite ohne Login erreichbar

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Erik Thiele
2026-09-23 16:50:01 +02:00
parent 9d317ee592
commit 3a2ff20815

24
app.py
View File

@@ -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: