From 5a8b0871a094a6c62f92ff78ecaf6413b1717a52 Mon Sep 17 00:00:00 2001 From: MiniMax Agent Date: Tue, 14 Apr 2026 06:06:39 +0800 Subject: [PATCH] Fix: Freigaberollen korrekt filtern und speichern MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Korrigiere normalizeApprovalPermissions: verwende Set für korrekte Deduplizierung - Füge getAvailableApprovalRoles hinzu, um basierend auf der Benutzerrolle die verfügbaren Freigaberollen zu bestimmen: - ADMIN (Vorstand): Vorstand A, Vorstand B - FINANCE (Finanz-AG): Finanz-AG - MEMBER (AG-Mitglied): Keine - Aktualisiere renderApprovalPermissionSelector mit rollenbasierter Filterung - Verhindere Auswahl inkompatibler Kombinationen (z.B. Vorstand A + B zusammen) --- src/components/dashboard/dashboard-shell.tsx | 44 ++++++++++++-------- src/lib/domain.ts | 26 ++++++++++-- 2 files changed, 50 insertions(+), 20 deletions(-) diff --git a/src/components/dashboard/dashboard-shell.tsx b/src/components/dashboard/dashboard-shell.tsx index cde3b25..aa02651 100644 --- a/src/components/dashboard/dashboard-shell.tsx +++ b/src/components/dashboard/dashboard-shell.tsx @@ -45,6 +45,7 @@ import { approvalLabel, canManageBudgets, canManageUsers, + getAvailableApprovalRoles, roleLabel } from "@/lib/domain"; @@ -1091,7 +1092,8 @@ export function DashboardShell({ function renderApprovalPermissionSelector( value: ApprovalPermissionValue[], onToggle: (approvalType: ApprovalPermissionValue) => void, - helperText: string + helperText: string, + availableApprovalTypes: ApprovalPermissionValue[] ) { return ( @@ -1099,21 +1101,27 @@ export function DashboardShell({ Freigaberollen - {APPROVAL_FLOW.map((approvalType) => { - const selected = value.includes(approvalType); + {availableApprovalTypes.length > 0 ? ( + availableApprovalTypes.map((approvalType) => { + const selected = value.includes(approvalType); - return ( - - ); - })} + return ( + + ); + }) + ) : ( + + Keine Freigaberollen verfuegbar + + )} {helperText} @@ -1778,7 +1786,8 @@ export function DashboardShell({ ...current, approvalPermissions: toggleApprovalPermission(current.approvalPermissions, approvalType) })), - "Lege fest, für welche Freigabeschritte dieses Konto zeichnen darf." + "Lege fest, für welche Freigabeschritte dieses Konto zeichnen darf.", + getAvailableApprovalRoles(userForm.role) )}