技术指南

ThinkPHP OA 权限模型:组织架构、角色与数据范围如何分层

Author
LLAdmin 编辑部
官方深度技术评测与指南
阅读量
18+

企业 OA 的权限不仅是“能不能打开某个菜单”。用户可能有页面访问权限,却不应看到其他部门的合同;也可能可以查看项目,却不能修改任务。把菜单、操作和数据范围混为一谈,权限规则很快会变得难以维护。

拆成三层授权

  1. 菜单权限:决定用户能否进入工作台、审批、客户或项目等模块。
  2. 操作权限:决定能否新增、编辑、审核、导出或删除具体记录。
  3. 数据范围:决定用户能看哪些部门、本人负责或参与的业务数据。

组织部门、岗位、角色与用户应分别建模。岗位描述职责,角色聚合权限,组织关系用于数据范围;一个人可拥有多个角色,但最终权限需要按清晰规则合并。

在服务端统一执行数据范围

列表、详情、导出和统计接口都应走同一套数据范围条件,不能只在页面按钮上隐藏功能。对“本人、所在部门、部门及下级、全部”等范围,先把规则转成可测试的查询条件,再应用到每个业务入口。详情页也要重新校验记录权限,防止通过猜测 ID 绕过列表限制。

保持可审计、可回收

角色授权变更记录操作者和变更内容;离职或调岗时优先停用账号并迁移业务归属,不要直接删除仍被合同、审批引用的用户。测试时至少覆盖跨部门访问、越权导出、禁用账号、多个角色叠加和管理员最小授权。权限清晰,比不断追加特例更容易长期维护。

对该项目感兴趣?

立即查看项目详情,获取完整技术授权与深度支持。