Commit Graph
1 Commits
Author SHA1 Message Date
msolarczekandClaude Opus 4.8 6ddeedf0b6 Serverseitige Modul-Durchsetzung (§3.4)
Deaktivierte Module werden nicht nur in der Navigation ausgeblendet, sondern
serverseitig gesperrt:

- requireModule-Guard (server/modules.ts): prüft TenantModule und leitet bei
  deaktiviertem Modul auf /dashboard?module=disabled um (fehlende Zeile = aktiv).
- Modul-Layout je Routenbereich (assets, processes, risks, measures, policies,
  suppliers, dependencies) — deckt alle Unterrouten mit ab (GET-Zugriff).
- API-Ebene: requireModule zusätzlich im gemeinsamen guard() der Policy-Actions
  (Layout-Guard läuft bei Server-Actions erst nach der Mutation).

Verifiziert im Browser: bei deaktiviertem Policies-Modul werden /policies und
/policies/R08 auf /dashboard?module=disabled umgeleitet; Nav blendet den Punkt aus.

Hinweis: Das gleiche guard()-Einzeiler-Muster kann auf die Actions der übrigen
Module übertragen werden (bislang exemplarisch für Policies); die Route-Layouts
sichern bereits alle Modul-Seiten.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 20:46:14 +02:00