Funktions-Schalter je Mandant (app/features.php, tenant_features): der Betreiber schaltet FAQ, Selbsteintrag, PDF, PayPal-Eingang, CSV-Import, Mailversand, Jahresabschluss, Datenexport und eigenes Design pro Mandant frei. Gesperrte Funktionen verschwinden aus Menue und Schaltflaechen, ihre Seiten weisen Aufrufe und POSTs ab. Das Back-Office ist jetzt fuer Platform-Admins im Menue verlinkt statt nur per URL erreichbar. Eigenes Design je Mandant: Akzentfarbe und Logo in den Mandant- Einstellungen, eingebettet ueber app/branding.php; das Logo liegt geschuetzt in var/tenant_logos und wird nur ueber tenant-logo-anzeigen.php an den eigenen Mandanten ausgeliefert. Weniger Startinformationen: Startpaket neuer Mandanten auf zwei Beispielfragen gekuerzt, Anleitung von ~1400 auf ~750 Woerter gestrafft und um Abschnitte zu gesperrten Funktionen bereinigt. Vorder-/Rueckseite erst bei mehr als 50 Personen (vorher schon ab 50). Die Schwelle liegt jetzt gemeinsam in app/ledger.php und gilt auch fuer die Vorder-/Rueckseiten-Auswahl beim Erfassen, wo sie bisher unabhaengig von der Teamgroesse angeboten wurde. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
22 lines
1.0 KiB
SQL
22 lines
1.0 KiB
SQL
-- Funktions-Schalter je Mandant, gepflegt vom Betreiber im Back-Office.
|
|
--
|
|
-- Bewusst getrennt von tenant_settings: dort stellt der Kunde selbst ein, wie
|
|
-- seine Kaffeeliste arbeitet. Hier entscheidet der Betreiber, welche
|
|
-- Funktionen dem Mandanten ueberhaupt zur Verfuegung stehen (z. B. zum
|
|
-- Abschalten einer Funktion, die bei einem Kunden Probleme macht).
|
|
--
|
|
-- Ohne Zeile gilt eine Funktion als aktiv (siehe app/features.php); die
|
|
-- Tabelle haelt also nur die Abweichungen vom Standard.
|
|
CREATE TABLE IF NOT EXISTS tenant_features (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
tenant_id INT NOT NULL,
|
|
feature_key VARCHAR(64) NOT NULL,
|
|
enabled TINYINT(1) NOT NULL DEFAULT 1,
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
UNIQUE KEY uniq_tenant_feature (tenant_id, feature_key),
|
|
CONSTRAINT fk_tenant_features_tenant
|
|
FOREIGN KEY (tenant_id) REFERENCES tenants(id)
|
|
ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|