权限规则 ★
一句话:权限规则 = 行级数据权限的「过滤器定义」——用「模板 + 参数」描述「哪些行可见」(如:只看自己的、只看本部门的、状态在某集合内的)。它本身不授权,被角色资源授权的「行过滤规则」引用后才生效。
功能在哪
- 菜单路径:系统管理 → 组织权限 → 权限管理 → 权限规则
- 地址栏路由:
/system/org-permission/perm/rule

界面认识
| 区域 | 作用 | 常用操作 |
|---|---|---|
| 查询区 | 规则名称 / 规则模板 / 来源(系统内置·自定义)/ 状态 / 创建时间 | 「搜索」「重置」 |
| 工具条 | 「新增」建自定义规则;勾选后「批量删除」 | 内置规则不可勾选 |
| 列表 | 规则编号 / 规则名称 / 来源 / 模板 / 参数 / 描述 / 状态 / 创建时间 | 内置行「查看」;自定义行「编辑」「删除」 |
「来源」列区分两类:
| 来源 | 能否改/删 | 说明 |
|---|---|---|
| 系统内置 | 只读(行内只有「查看」,删除按钮置灰) | 平台预置的通用规则,保证升级不丢 |
| 自定义 | 可编辑可删除 | 租户按业务自己拼模板参数 |
常用操作
新建自定义规则
- 点「新增」;
- 填「规则名称」——给管理员看的名字,如「仅查看自己的数据」;
- 选「规则模板」:可直接输入模板代码,也可从分组下拉里选(基础模板 / 派生可见性 / 高级 三组);选中后下方「模板说明」会显示该模板的口径;
- 填「模板参数」——模板留的空,如部门 ID 集合、状态集合;
- 填「规则描述」——会显示在授权页的规则下拉里,帮人选规则时判断用途;
- 确认「状态」,点「确定」。

结果:列表多出一行「自定义」;角色资源授权的「行过滤规则」下拉立即能选到它。
规则只是定义,不绑主体不生效
建完规则后,还要到角色资源授权把它挂到某角色对某数据集的授权行上,才会真正过滤行。
查看 / 编辑规则
- 内置规则:行内「查看」,只读弹窗;
- 自定义规则:行内「编辑」,改完「确定」。
改参数立即影响所有引用它的授权
一条规则可能被多个角色的多条授权行引用。改参数 = 同时改这些人的可见行范围。改前在权限资源的「明细设计 → 授权列表」反查引用面。
删除 / 批量删除
勾选自定义规则后「批量删除」(内置规则勾不了)。
被引用中的规则删不掉
后端会拒绝并提示仍有授权在使用;先到角色资源授权把相关授权行的规则解绑。
字段说明
| 字段 | 必填 | 取值 / 校验 | 说明 |
|---|---|---|---|
| 规则名称 | 是 | 文本 | 授权页下拉里显示的名字 |
| 规则模板 | 是 | 模板代码或分组下拉 | 决定规则的算法口径 |
| 模板说明 | — | 只读 | 选中模板后自动显示 |
| 模板参数 | 视模板 | JSON/集合 | 模板留的空;缺参数规则不生效 |
| 规则描述 | 否 | 文本 | 展示给管理员判断用途 |
| 状态 | 是 | 开启 / 关闭 | 关闭后引用它的授权行不再按此过滤 |
视角对照
| 视角 | 看到什么 |
|---|---|
| 超管 / 租户管理员 | 内置 + 自定义全部规则,可建自定义 |
| 只有查询权限的角色 | 能看列表,「新增/编辑/删除」不出现 |
| 普通员工 | 无入口,直达 403 |
规则效果在业务页上验证
给 docsales 挂上「仅自己的数据」后,它登录在线表单「校验示例4-唯一性长度与脱敏」时行数从 8 变 2。端到端配置与验证步骤见场景教程配置行级数据权限。
进阶
常见问题
Q:内置规则为什么没有「编辑」? A:内置只读:不能改、不能删、不能改状态(删除按钮置灰并带提示「内置规则只读」)。要变体就「新增」一条自定义,选同一模板改参数。
Q:规则建好了,授权页下拉里选不到? A:两个常见原因——规则状态是关闭;或所选资源不是数据集类(行过滤只对数据集有意义)。
Q:挂了规则后用户「一行都查不出来」? A:通常是数据集的槽位映射没配或参数里的 ID 不存在。到权限资源该数据集的「明细设计 → 槽位映射」核对;批量授权时那条黄色「无法核对槽位覆盖度」提醒说的就是这件事。
Q:改了一条规则,好几个角色的可见范围都变了? A:规则是共享定义,一对多引用。这是预期行为;改前用权限资源的授权列表反查引用面。
