Iteration 1: Auth (lokale Accounts), RBAC, RLS-Policies, i18n

- Auth.js v5 mit Credentials-Provider: Argon2id-Verifikation, JWT-Session
  mit Mandanten-Kontext, Rollen und Permissions; Login-/Logout-Flow (deutsch)
- RBAC-Katalog (28 Permissions, 5 Rollen-Blueprints) mit serverseitigem
  requirePermission; Seed legt Demo-Mandant und 4 Demo-Nutzer an
- Route-Gate über Next-16-proxy.ts (UX-Ebene), autoritative Prüfung
  serverseitig via requireSession/requirePermission
- Prisma-Migrationen: init + Row-Level-Security-Policies (zweite
  Verteidigungslinie, Scharfschaltung in Härtungs-Iteration dokumentiert)
- i18n-Gerüst mit next-intl (de aktiv, en vorbereitet), Audit-Log-Helper
- Login/Logout end-to-end im Browser verifiziert; Build/Lint/Typecheck grün

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Martin
2026-07-02 12:09:54 +02:00
co-authored by Claude Fable 5
parent 87e933b3c0
commit 880afed391
24 changed files with 1992 additions and 84 deletions
+23
View File
@@ -0,0 +1,23 @@
{
"common": {
"appName": "ISMS-Tool",
"logout": "Abmelden"
},
"login": {
"title": "Anmelden",
"subtitle": "Melde dich mit deinem Firmenkonto an.",
"email": "E-Mail-Adresse",
"password": "Passwort",
"tenant": "Organisation (optional)",
"tenantHint": "Nur nötig, wenn deine E-Mail in mehreren Organisationen existiert.",
"submit": "Anmelden",
"error": "Anmeldung fehlgeschlagen. Bitte prüfe E-Mail, Passwort und ggf. die Organisation."
},
"dashboard": {
"title": "Dashboard",
"welcome": "Willkommen, {name}",
"tenant": "Mandant",
"roles": "Rollen",
"placeholder": "Die Modul-Dashboards (Risiken, Aufgaben, SoA-Erfüllungsgrad) folgen in den nächsten Iterationen."
}
}