PA6 补齐权限与审计回归

这个提交包含在:
2026-05-12 08:29:18 +08:00
父节点 aec660a8fe
当前提交 a0dc6fc408
共修改 13 个文件,包含 645 行新增和 42 行删除
@@ -81,6 +81,7 @@ describe("workspace small-team navigation defaults", () => {
const employee = {
id: "employee-1",
department_id: "dept-1",
roleCodes: ["employee"],
permissionCodes: resolvePermissionsForRoles(["employee"]),
};
@@ -102,4 +103,29 @@ describe("workspace small-team navigation defaults", () => {
expect(backupKeys).not.toContain("erpIntegrations");
expect(backupKeys).not.toContain("dashboard");
});
it("does not expose workflow task entry to admin-only navigation", async () => {
const adminOnly = {
id: "admin-1",
department_id: "dept-1",
roleCodes: ["admin"],
permissionCodes: resolvePermissionsForRoles(["admin"]),
};
const navigation = await getSystemNavigation({
prisma: buildPrisma(),
config: { ...buildConfig(), workflowDefinitionAdminEnabled: true },
employee: adminOnly,
hasPermission: (candidate, permissionCode) => hasPermission(candidate.permissionCodes, permissionCode),
});
const allKeys = [
...navigation.sections.main,
...navigation.sections.admin,
...navigation.sections.backup,
].map((item) => item.key);
expect(allKeys).toContain("auditLogs");
expect(allKeys).not.toContain("workflowTasks");
});
});