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:
Vendored
+35
@@ -0,0 +1,35 @@
|
||||
import type { DefaultSession } from "next-auth";
|
||||
|
||||
declare module "next-auth" {
|
||||
interface Session {
|
||||
user: {
|
||||
id: string;
|
||||
tenantId: string;
|
||||
tenantSlug: string;
|
||||
roles: string[];
|
||||
permissions: string[];
|
||||
isPlatformAdmin: boolean;
|
||||
} & DefaultSession["user"];
|
||||
}
|
||||
|
||||
interface User {
|
||||
id?: string;
|
||||
tenantId: string;
|
||||
tenantSlug: string;
|
||||
roles: string[];
|
||||
permissions: string[];
|
||||
isPlatformAdmin: boolean;
|
||||
}
|
||||
}
|
||||
|
||||
// next-auth/jwt re-exportiert nur aus @auth/core/jwt — Augmentation muss dorthin
|
||||
declare module "@auth/core/jwt" {
|
||||
interface JWT {
|
||||
userId: string;
|
||||
tenantId: string;
|
||||
tenantSlug: string;
|
||||
roles: string[];
|
||||
permissions: string[];
|
||||
isPlatformAdmin: boolean;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user