diff --git a/src/components/dashboard/dashboard-shell.tsx b/src/components/dashboard/dashboard-shell.tsx index 17ff2e9..cde3b25 100644 --- a/src/components/dashboard/dashboard-shell.tsx +++ b/src/components/dashboard/dashboard-shell.tsx @@ -45,7 +45,6 @@ import { approvalLabel, canManageBudgets, canManageUsers, - getDefaultApprovalPermissionsForRole, roleLabel } from "@/lib/domain"; @@ -1738,8 +1737,7 @@ export function DashboardShell({ const nextRole = event.target.value as UserFormState["role"]; setUserForm((current) => ({ ...current, - role: nextRole, - approvalPermissions: sortApprovalPermissions(getDefaultApprovalPermissionsForRole(nextRole)) + role: nextRole })); }} required @@ -1934,8 +1932,7 @@ export function DashboardShell({ onChange={(event) => { const nextRole = event.target.value as ManagedUserDraft["role"]; updateManagedUserDraft(user, { - role: nextRole, - approvalPermissions: sortApprovalPermissions(getDefaultApprovalPermissionsForRole(nextRole)) + role: nextRole }); }} fullWidth diff --git a/src/lib/domain.ts b/src/lib/domain.ts index f012c66..aad987b 100644 --- a/src/lib/domain.ts +++ b/src/lib/domain.ts @@ -97,27 +97,12 @@ export function canDeleteExpense( 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( - role: AppRole, + _role: AppRole, approvalPermissions: ApprovalTypeValue[] | null | undefined, approvalPreference: ApprovalTypeValue | null | undefined = null ) { - const rawPermissions = approvalPermissions && approvalPermissions.length > 0 - ? approvalPermissions - : approvalPreference - ? [approvalPreference] - : getDefaultApprovalPermissionsForRole(role); + const rawPermissions = approvalPermissions ?? (approvalPreference ? [approvalPreference] : []); return APPROVAL_FLOW.filter( (approvalType, index) => rawPermissions.includes(approvalType) && rawPermissions.indexOf(approvalType) === index