Menue folgt auch den Schaltern des Mandanten

Bisher blendete das Menue nur aus, was der Betreiber gesperrt hatte. Hat
der Mandant selbst eine Funktion abgeschaltet - etwa "PayPal anbieten" in
den Mandant-Einstellungen - blieb der Menuepunkt stehen und fuehrte auf
eine Seite ohne Zweck.

app_feature_available() prueft nun beide Ebenen, app_feature_tenant_switch()
haelt die Zuordnung Funktion -> Mandanten-Schalter. Navigation und Anleitung
nutzen die neue Pruefung; paypal-zuordnung.php sperrt sich beim direkten
Aufruf ebenfalls und verweist dabei auf die Mandant-Einstellungen statt auf
den Betreiber.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-20 23:16:30 +02:00
co-authored by Claude Opus 5
parent d24ee9bf91
commit 3f6866e075
5 changed files with 110 additions and 12 deletions
+11
View File
@@ -94,6 +94,17 @@ Design-Entscheidungen:
einem Hinweis statt mit einem Fehler. Die POST-Verarbeitung der
betroffenen Seiten hängt an derselben Prüfung, eine gesperrte Funktion
lässt sich also auch nicht per Formular-POST auslösen.
- **Abgeschaltet vom Kunden heißt ebenfalls unsichtbar.** Für Funktionen
mit eigenem Schalter in den Mandant-Einstellungen zieht `footer.php`
(und die Anleitung) `app_feature_available()` heran: erst die
Freischaltung durch den Betreiber, dann der Schalter des Kunden. Die
Zuordnung steht in `app_feature_tenant_switch()` aktuell
`paypal_inbox``paypal_enabled` und `self_entry`
`self_entry_enabled`. Wer PayPal nicht als Zahlungsweg anbietet, sieht
den Menüpunkt „PayPal-Zahlungen" also gar nicht erst; beim direkten
Aufruf erscheint statt des Betreiber-Hinweises
`app_feature_tenant_notice_html()` mit dem Weg zurück in die
Mandant-Einstellungen.
- Jede Änderung landet als `backoffice.features_updated` im Audit-Log des
betroffenen Mandanten wie jeder andere Back-Office-Zugriff auch.