PA6 补齐权限与审计回归

这个提交包含在:
2026-05-12 08:29:18 +08:00
父节点 aec660a8fe
当前提交 a0dc6fc408
共修改 13 个文件,包含 645 行新增和 42 行删除
@@ -2,11 +2,8 @@ import { NavLink } from "react-router-dom";
import { useQuery } from "@tanstack/react-query";
import { fetchWorkflowTasks } from "../../api/workflow";
import { useAuth } from "../../auth/AuthContext";
import { hasAnyPermission } from "../../auth/permissions";
import {
MOBILE_APPROVAL_PERMISSIONS,
MOBILE_NAV_ITEMS,
} from "../../features/mobile/navigation";
import { hasAnyPermission, hasBusinessApproverRole } from "../../auth/permissions";
import { MOBILE_NAV_ITEMS } from "../../features/mobile/navigation";
import { cn } from "../../lib/utils";
import { MobileIcon } from "./MobileIcon";
@@ -18,8 +15,8 @@ function resolveBadgeLabel(count: number) {
}
export function MobileBottomNav() {
const { permissions } = useAuth();
const canAccessApprovals = hasAnyPermission(permissions, [...MOBILE_APPROVAL_PERMISSIONS]);
const { me, permissions } = useAuth();
const canAccessApprovals = hasBusinessApproverRole(me?.roleCodes, permissions);
const pendingCountQuery = useQuery({
enabled: canAccessApprovals,
@@ -40,7 +37,11 @@ export function MobileBottomNav() {
>
<div className="relative z-[71] grid grid-cols-4 gap-1">
{MOBILE_NAV_ITEMS.map((item) => {
const disabled = item.anyOf ? !hasAnyPermission(permissions, [...item.anyOf]) : false;
const disabled = item.key === "approvals"
? !canAccessApprovals
: item.anyOf
? !hasAnyPermission(permissions, [...item.anyOf])
: false;
const badge = item.key === "approvals" && pendingCount > 0 ? resolveBadgeLabel(pendingCount) : null;
if (disabled) {