R36-1/R36-2/R36-3/R36-5 收口请假编辑与团队日历

这个提交包含在:
2026-03-25 15:32:23 +08:00
父节点 18af4aedc4
当前提交 d0b9d9eaca
共修改 9 个文件,包含 874 行新增和 69 行删除
+14 -4
查看文件
@@ -54,6 +54,7 @@ const ROLE_PERMISSIONS: Record<string, readonly string[]> = {
"expense.transfer",
"expense.view_all",
"leave.approve",
"leave.view_all",
"procurement.approve",
"procurement.view_all",
"travel.approve",
@@ -61,12 +62,9 @@ const ROLE_PERMISSIONS: Record<string, readonly string[]> = {
"asset.view_all",
"report.dashboard.view",
"project.view_all",
"project.manage",
"budget.view",
"project.view_all",
"project.manage",
"budget.manage",
"project.view_all",
"project.manage",
],
ceo: [
...EMPLOYEE_BASE_PERMISSIONS,
@@ -184,3 +182,15 @@ export function hasAnyPermission(permissionCodes: string[], candidates: string[]
return candidates.some((candidate) => hasPermission(permissionCodes, candidate));
}
export function isManagerRole(permissionCodes: string[]) {
if (hasPermission(permissionCodes, "*") || hasPermission(permissionCodes, "system.users")) {
return true;
}
return permissionCodes.some(
(permission) =>
permission.endsWith(".approve") ||
(permission.endsWith(".manage") && !permission.endsWith(".view_all")),
);
}