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
+13 -6
View File
@@ -16,11 +16,18 @@ if ($saasUser !== null && saas_user_has_role(['owner', 'admin', 'treasurer'], $s
$hasAccess = true;
}
// Vom Betreiber gesperrte Funktion: $hasAccess faellt zurueck, damit auch die
// POST-Verarbeitung weiter unten nicht mehr laeuft.
$gesperrteFunktion = null;
// Gesperrte Funktion: $hasAccess faellt zurueck, damit auch die
// POST-Verarbeitung weiter unten nicht mehr laeuft. Der Menuepunkt ist in
// diesem Fall ausgeblendet - die Seite bleibt aber ueber die direkte URL
// erreichbar und muss deshalb selbst pruefen.
$sperrHinweis = null;
if ($hasAccess && !app_feature_enabled($pdo, $tenantId, 'paypal_inbox')) {
$gesperrteFunktion = 'paypal_inbox';
// Der Betreiber hat die Funktion fuer diesen Mandanten nicht freigeschaltet.
$sperrHinweis = app_feature_notice_html('paypal_inbox');
$hasAccess = false;
} elseif ($hasAccess && !app_feature_available($pdo, $tenantId, 'paypal_inbox')) {
// Der Mandant selbst bietet PayPal nicht als Zahlungsweg an.
$sperrHinweis = app_feature_tenant_notice_html('paypal_inbox');
$hasAccess = false;
}
@@ -130,8 +137,8 @@ include "nav.php";
<section id="banner">
<div class="content">
<?php if ($gesperrteFunktion !== null): ?>
<?php echo app_feature_notice_html($gesperrteFunktion); ?>
<?php if ($sperrHinweis !== null): ?>
<?php echo $sperrHinweis; ?>
<?php elseif (!$hasAccess): ?>
<h2>Kein Zugriff</h2>
<?php else: ?>