Rollen fix
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user