Rollen fix
All checks were successful
CI / Build (push) Successful in 1m20s
CI / Deploy (push) Successful in 54s

This commit is contained in:
Jan
2026-04-13 23:57:06 +02:00
parent dfdff6bf99
commit 44a2c3aeae
2 changed files with 4 additions and 22 deletions

View File

@@ -45,7 +45,6 @@ import {
approvalLabel, approvalLabel,
canManageBudgets, canManageBudgets,
canManageUsers, canManageUsers,
getDefaultApprovalPermissionsForRole,
roleLabel roleLabel
} from "@/lib/domain"; } from "@/lib/domain";
@@ -1738,8 +1737,7 @@ export function DashboardShell({
const nextRole = event.target.value as UserFormState["role"]; const nextRole = event.target.value as UserFormState["role"];
setUserForm((current) => ({ setUserForm((current) => ({
...current, ...current,
role: nextRole, role: nextRole
approvalPermissions: sortApprovalPermissions(getDefaultApprovalPermissionsForRole(nextRole))
})); }));
}} }}
required required
@@ -1934,8 +1932,7 @@ export function DashboardShell({
onChange={(event) => { onChange={(event) => {
const nextRole = event.target.value as ManagedUserDraft["role"]; const nextRole = event.target.value as ManagedUserDraft["role"];
updateManagedUserDraft(user, { updateManagedUserDraft(user, {
role: nextRole, role: nextRole
approvalPermissions: sortApprovalPermissions(getDefaultApprovalPermissionsForRole(nextRole))
}); });
}} }}
fullWidth fullWidth

View File

@@ -97,27 +97,12 @@ export function canDeleteExpense(
return viewerId === creatorId && approvalStatus === "PENDING" && !paidAt && !documentedAt; return viewerId === creatorId && approvalStatus === "PENDING" && !paidAt && !documentedAt;
} }
export function getDefaultApprovalPermissionsForRole(role: AppRole): ApprovalTypeValue[] {
switch (role) {
case "ADMIN":
return ["CHAIR_A"];
case "FINANCE":
return ["FINANCE"];
case "MEMBER":
return [];
}
}
export function normalizeApprovalPermissions( export function normalizeApprovalPermissions(
role: AppRole, _role: AppRole,
approvalPermissions: ApprovalTypeValue[] | null | undefined, approvalPermissions: ApprovalTypeValue[] | null | undefined,
approvalPreference: ApprovalTypeValue | null | undefined = null approvalPreference: ApprovalTypeValue | null | undefined = null
) { ) {
const rawPermissions = approvalPermissions && approvalPermissions.length > 0 const rawPermissions = approvalPermissions ?? (approvalPreference ? [approvalPreference] : []);
? approvalPermissions
: approvalPreference
? [approvalPreference]
: getDefaultApprovalPermissionsForRole(role);
return APPROVAL_FLOW.filter( return APPROVAL_FLOW.filter(
(approvalType, index) => rawPermissions.includes(approvalType) && rawPermissions.indexOf(approvalType) === index (approvalType, index) => rawPermissions.includes(approvalType) && rawPermissions.indexOf(approvalType) === index