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