Files
nexarch/migrations/0012_dms_module_scopes.up.sql
patrickandClaude Sonnet 5 b3ba0fdfa6
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
RBAC-10: mandant und modulaktivierung in authorize
POST /authorize nimmt optional den Mandanten entgegen und wertet modulgebundene Rechte ueber AuthorizeForTenant aus (fail closed). Mandant ist Pflicht fuer Rechte mit Modul-Bindung, das Service-Token laesst sich auf Mandanten einschraenken. Migration 0012 bindet die dms.*-Rechte an das Flag dms. Der DMS-policyclient sendet den Mandanten mit und trennt den Cache je Mandant.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 23:38:02 +02:00

10 lines
524 B
SQL

-- RBAC-10: Die dms.*-Rechte aus 0011_dms_policy_rules gelten nur fuer Mandanten,
-- fuer die das Feature-Flag "dms" aktiv ist (Rechte folgen der Lizenz, RBAC-04).
-- Ohne aktives Flag verweigert POST /authorize (fail closed); das Flag setzt der
-- Betrieb je Mandant (feature_flags.target_tenant_slugs) oder global.
INSERT INTO policy_module_scopes (role, permission, module, flag_key)
SELECT r.role, r.permission, 'dms', 'dms'
FROM policy_rules r
WHERE r.permission LIKE 'dms.%'
ON CONFLICT (role, permission) DO NOTHING;