In der Nutzerverwaltung kannst du jetzt pro Konto die Rolle, die AG-Zuordnung und die Freigaberollen bearbeiten. Die feste 3er-Freigabelogik bleibt Vorstand A / Vorstand B / Finanz-AG, aber jetzt legst du über die Nutzer fest, wer diese Schritte autorisieren darf. Zusätzlich gibt es unter Nutzer anlegen eine eigene Insel für die Freigabe-Schwelle, und diese Schwelle wird jetzt auch wirklich überall verwendet: in der Erfassungslogik, in den Budgetkarten, im CSV-Backup/-Import und im Audit-Restore. Die Hauptänderungen sitzen in dashboard-shell.tsx, budget-column.tsx, route.ts, schema.prisma und route.ts.
All checks were successful
CI / build-and-deploy (push) Successful in 1m22s
All checks were successful
CI / build-and-deploy (push) Successful in 1m22s
Den Zeitraum-Bereich habe ich dabei gleich mit aufgeräumt: die Auswahl des aktuellen Haushalts ist breiter und sauberer angeordnet, und die Desktop-Nutzerverwaltung ist jetzt wirklich links Anlegen + Schwelle und rechts die Nutzerliste. Seed und Backup/Restore kennen die neuen Felder ebenfalls in seed.ts, route.ts und route.ts.
This commit is contained in:
@@ -3,6 +3,7 @@ import CredentialsProvider from "next-auth/providers/credentials";
|
||||
import bcrypt from "bcryptjs";
|
||||
import { z } from "zod";
|
||||
|
||||
import { normalizeApprovalPermissions } from "@/lib/domain";
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
const credentialsSchema = z.object({
|
||||
@@ -55,7 +56,11 @@ export const authOptions: NextAuthOptions = {
|
||||
email: matchedUser.email,
|
||||
role: matchedUser.role,
|
||||
workingGroupId: matchedUser.workingGroupId,
|
||||
approvalPreference: matchedUser.approvalPreference
|
||||
approvalPermissions: normalizeApprovalPermissions(
|
||||
matchedUser.role,
|
||||
matchedUser.approvalPermissions,
|
||||
matchedUser.approvalPreference
|
||||
)
|
||||
};
|
||||
}
|
||||
})
|
||||
@@ -67,7 +72,7 @@ export const authOptions: NextAuthOptions = {
|
||||
token.username = user.username;
|
||||
token.role = user.role;
|
||||
token.workingGroupId = user.workingGroupId;
|
||||
token.approvalPreference = user.approvalPreference;
|
||||
token.approvalPermissions = user.approvalPermissions;
|
||||
}
|
||||
|
||||
return token;
|
||||
@@ -78,7 +83,7 @@ export const authOptions: NextAuthOptions = {
|
||||
session.user.username = token.username ?? "";
|
||||
session.user.role = token.role ?? "MEMBER";
|
||||
session.user.workingGroupId = token.workingGroupId ?? null;
|
||||
session.user.approvalPreference = token.approvalPreference ?? null;
|
||||
session.user.approvalPermissions = token.approvalPermissions ?? [];
|
||||
}
|
||||
|
||||
return session;
|
||||
|
||||
Reference in New Issue
Block a user