文件
hyb-oa/.trellis/tasks/09-07-manager-ap-access-scope/design.md
T
wangsli 58dcee08f7
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s
fix: 用专用权限收窄经理 AP 访问(09-07-manager-ap-access-scope)
2026-09-08 07:21:37 +08:00

2.7 KiB

AP 全量读取最小收窄方案(专用权限修订已批准)

1. 读取授权

获批修订:新增专用权限 finance.ledger.view,仅授予 ceo、finance、finance_mgr;两个 AP GET 及前端入口统一只检查此权限。manager 不授予;不存在 CEO 角色特判,旧付款管理、复核、风险和支付权限均不再独立授予 AP 读取。既有应急 admin 通配符语义不变。

前后端各有静态 ROLE_PERMISSIONS,需要同步三类角色和相关测试,不是只改服务端三行。无数据库权限迁移,不授予 CEO 写权限,不按人员账号特判,不采用 manager deny-list。AP 导出仍使用原有独立权限。

2. 接入范围

  • server/src/routes/apOperations.js:两个 GET 共用收紧后的守卫,数据查询之前拒绝。功能门禁先后顺序保持现状。
  • client/src/auth/permissions.ts:集中表达 AP 全量读取判据;不修改通用付款复核判据或其他角色权限集合。
  • client/src/router/index.tsx、AP 页面入口及服务端 workspaceSettings:只同步 AP 投影,核对移动和桌面入口,不能全局替换相同的旧 permission 数组而误伤付款路由。
  • server/src/routes/exports.js:现有导出不含复核授权,本轮不更改;验证拒绝和已有正例。
  • 不在 AP 中另造“经理相关单据子集”;经理继续通过既有审批/付款复核路径处理职责内工作。若核实必须借 AP 才能完成复核,报告导航依赖并交审,不默认扩充数据范围。

3. 验证矩阵

身份 AP 汇总/台账 付款复核 AP 导出
employee 拒绝 按现有权限拒绝 拒绝
manager,仅复核职责 拒绝 保留原业务条件 拒绝
ceo 保留全量读取 保留原业务条件 不新增
finance / finance_mgr 专用权限允许 不改变角色和独立复核条件 按既有两项权限
manager+已授权财务角色 允许 原条件不变 按财务授权
仅系统管理员 不新增 不新增 不新增
仅持旧付款管理/复核/风险/支付权限 拒绝 按原权限 按既有两项权限

API 验证包括数据查询未发生、筛选不绕过;前端验证包括直连、菜单和复核入口。现有经理 AP 拒绝断言保留,必要时拆分用例使后续角色断言真正执行,不以局部通过冒充整个权限审计通过。

4. 安全与交付边界

不查询生产日志,不回填历史访问结论。不触碰既有门禁交审文件;若实施必须修改已交审测试,先保存对应增量基线,单独交本 task diff,不混报旧包。实现后独立只读复核,提交、推送和部署继续另行授权。