# 角色与权限

组织管理员在「权限 → 业务角色」中定义业务角色、应用内权限点、数据范围和字段规则，并开启或关闭「精细权限」。业务角色决定成员能对哪些数据做什么、看到哪个范围，并在审批流程中确定部门负责人。为成员分配主部门角色以及「在其他部门任职」在[成员管理](/admin/members)的成员详情中进行，不在本页。组织任职不是[会员](/apps/membership)应用中的关系角色。

## 谁能用

页面权限由角色决定：
- **查看页面**：需要管理员或审计员权限。若账号没有查看权限，页面显示空状态并提示「没有权限」与「你的账号角色不允许查看这个页面。请联系租户管理员。」。
- **修改设置与角色**：修改精细权限开关，以及新建、编辑、删除业务角色，需要管理员权限。审计员为只读权限，页面不显示「新建业务角色」按钮，「开启精细权限」开关处于禁用状态。
- **部门管理员限制**：部门管理员的侧栏导航中不显示「业务角色」，不能调整业务角色与任职。若尝试操作，服务端会拒绝并提示「部门管理员不能调整业务角色与任职」。
- **部署环境限制**：若当前部署未启用权限模型，页面显示「不可用」与「这个部署没有启用租户权限模型。」（成员抽屉同类情况提示「这个部署没有启用部门与业务角色。」）。

组织内两套「角色」的区别：

| 名称 | 在哪改 | 决定什么 |
|---|---|---|
| 「管理权限」 | 「权限 → 管理员」或成员抽屉「管理权限」 | 能否进入「我的组织」进行管理、审计或分析；不决定业务数据范围 |
| 「业务角色」 | 本页定义，在成员详情抽屉分配 | 数据权限、字段规则、部门负责人 |

> **提示**
>
> 「成员」是平台默认身份，不再作为可勾选的管理权限。

## 怎么打开

1. 进入[工作台](/guide/workspace)。
2. 在工作台打开「行政」→「我的组织」。
3. 在左侧导航点击「权限」→「业务角色」。

页面访问与直达方式：
- 从助手或已发出的链接进入时，可能直接滚到某个业务角色，或落到精细权限设置区域。
- 旧的权限入口也会转到本页。
- 关联入口：在[成员管理](/admin/members)中打开成员详情抽屉的「部门与业务角色」区域，可以为主部门分配业务角色或设置「在其他部门任职」。当组织内尚未创建业务角色时，成员抽屉会提供链接引导前往「权限 → 业务角色」。
- 相关功能位置：部门类型配置不在本页，请前往「组织架构」→「部门类型」（参见[组织架构](/admin/org-structure)）；[会员](/apps/membership)应用中的关系角色（如班导、销售教练等，员工与会员的绑定关系）在会员应用的「服务团队」中维护，不是本页的任职。

## 界面一览

页头显示「业务角色」，拥有管理员权限时显示「新建业务角色」按钮。页面主要分为两个区域：

### 1. 「精细权限」设置区

位于页面上方，用于控制业务数据的访问规则：
- 行标签为「按业务角色控制数据」，右侧显示状态徽标：「已开启」或「未开启」。
- 开启状态说明文案：「成员只能看到、改动业务角色授予的数据；没有业务角色的人看不到业务数据。管理员不受影响，审计员只读全部。」
- 未开启状态说明文案：「未开启：成员按默认规则读写业务数据，下面的业务角色暂不限制数据。部门和负责人照常用于记录归属与审批。」
- 开关属性为「开启精细权限」。

![「业务角色」页的「精细权限」](/shots/admin-roles.webp)

图：「业务角色」页的「精细权限」

1. 页头「业务角色」
2. 「新建业务角色」
3. 「精细权限」：关=默认规则读写；开=只看角色授予的
4. 开启前先建角色并给人任职，否则成员看不到业务数据

### 2. 「业务角色」列表

位于页面主体区域：
- 列表描述文案：「业务角色决定能对哪些数据做什么、看到哪个范围；在成员详情里给人任职。」
- 空状态提示：当尚未创建角色时，列表显示「还没有业务角色」，并引导「新建一个业务角色，授予权限点。」。
- 列表每行包含以下内容：
  - **角色名称**：显示角色的「名称」。
  - **角色编号**：等宽字体显示角色「编号」。
  - **负责人标识**：若开启了负责人角色，显示「负责人角色」标记。
  - **角色摘要**：显示填写的「说明」；若未填写说明且未勾选权限，显示「还没有授予任何权限」；若已勾选权限，显示权限数量与涉及对象摘要（例如若干项权限，涉及哪些对象）。
  - **成员人数**：数字后接「 位成员」，统计包括在主部门持有该角色以及在其他部门任职的成员总数（同一成员去重计算）。
  - **操作项**：包含「编辑」按钮与删除按钮（无障碍提示为「删除」加上角色名称）。

![业务角色列表](/shots/admin-roles-list.webp)

图：业务角色列表

1. 角色名；下行是编号
2. 「编辑」：改权限、范围、字段规则（编号不能改）
3. 「店长」带「负责人角色」：审批按它找部门负责人

### 3. 对话框与任职界面

| 界面 / 对话框 | 元素 | 说明 |
|---|---|---|
| 「新建业务角色」/「编辑业务角色」对话框 | 标题与描述 | 标题显示「新建业务角色」或「编辑业务角色 」加角色名称；描述显示「勾选这个角色拥有的权限，并为涉及记录的权限选一个数据范围。」 |
| | 基本信息字段 | 「编号」（提示「建好后不能改。」）、「名称」、「说明」 |
| | 负责人角色开关 | 「负责人角色」开关，提示「持有它的人是所在部门的负责人，审批的「部门负责人」按它找人。」 |
| | 权限点选择 | 按目录分组展示。若暂无可分配权限，提示「还没有可授予的权限。先在“数据模型”建对象，或安装应用。」 |
| | 数据范围下拉选单 | 涉及记录的权限提供数据范围选项：「本人创建的」「本部门的」「本部门及下级的」「全部」「指定部门的」 |
| | 「字段规则」 | 说明显示「仅对该角色可查看的对象生效；打码字段显示 ••••，隐藏字段不返回，均不可改。多个角色时，每个角色都限制才生效。」。未配规则提示「没有字段规则。」。包含「对象」、「字段」（下拉占位「选一个字段」）、「方式」（「打码」或「隐藏」）与「加规则」按钮。已添加规则展示带「×」的规则徽标 |
| | 底部按钮 | 「保存」按钮，保存成功提示「已保存」 |
| 成员详情「部门与业务角色」（[成员管理](/admin/members)） | 「在主部门担任的业务角色」 | 勾选成员在主部门持有的业务角色 |
| | 「在其他部门任职」 | 说明「数据范围和负责人角色都按任职所在的部门算。」。每行包含：角色（占位「角色」，负责人角色带「（负责人）」）`@` 部门（占位「部门」，可带部门类型名称），包含「加一条任职」按钮。企业微信同步行显示「企业微信同步，在企业微信里调整」（不可删除）；手动添加行可点击删除按钮移除 |

## 常用操作

### 推荐启用顺序

启用业务角色与精细权限时，建议按以下顺序进行，避免成员因没有角色而中断业务操作：
1. 在本页新建业务角色，勾选权限点并为涉及记录的权限选定数据范围。
2. 前往[成员管理](/admin/members)的成员详情，为主部门分配业务角色，或添加「在其他部门任职」。
3. 回到本页，开启「按业务角色控制数据」。

> **提示**
>
> 如果组织暂时不需要按角色限制业务数据，只需要在审批流中按部门指定审批负责人，可以保持精细权限处于关闭状态，直接在角色中开启「负责人角色」并在成员详情中完成任职配置即可。

### 新建业务角色

![「新建业务角色」对话框](/shots/admin-roles-new.webp)

图：「新建业务角色」对话框

1. 「编号」：建好后不能改
2. 「名称」：必填
3. 「负责人角色」：持有人是所在部门的负责人

1. 在「业务角色」页面右上角点击「新建业务角色」。
2. 填写角色基本信息：
   | 字段 | 必填 | 说明 |
   |---|---|---|
   | 「编号」 | 是（手填或留空生成） | 角色唯一标识，长度为 2–40 位，由小写字母、数字、`-` 或 `_` 组成，必须以字母开头。提示「建好后不能改。」。若格式不符合要求，保存时提示「编号 2–40 位：小写字母、数字、- 或 _，以字母开头」。可留空由服务端自动生成 |
   | 「名称」 | 是 | 填写角色名称，最多 60 个字。未填保存时提示「名称不能为空」 |
   | 「说明」 | 否 | 填写角色用途或职能说明，最多 300 个字 |
   | 「负责人角色」 | 否 | 开关选项。开启后，「持有它的人是所在部门的负责人，审批的「部门负责人」按它找人。」 |
3. 勾选权限点与数据范围：在权限分组中勾选对应的权限点。对于涉及具体记录的权限，在下拉选单中选择数据范围：
   | 选项 | 提示说明 | 适用场景 |
   |---|---|---|
   | 「本人创建的」 | 「只有自己创建的记录。」 | 仅允许查看或操作自己创建的数据 |
   | 「本部门的」 | 「创建者在自己部门的记录。」 | 允许查看或操作创建者在自己部门的数据 |
   | 「本部门及下级的」 | 「创建者在自己部门或下级部门的记录。」 | 允许查看或操作创建者在自己部门及所有下级部门的数据 |
   | 「全部」 | 「所有记录。」 | 允许查看或操作组织内的所有记录 |
   | 「指定部门的」 | 「创建者在你选定的部门的记录。」 | 仅允许查看或操作指定部门的数据。选择后点击「添加部门…」选取部门，已选部门可点击「×」移除。若未选择任何部门直接保存，提示「“指定部门”要至少选一个部门」 |
4. （可选）添加字段规则：如果需要对敏感数据做限制，在「字段规则」区域选择「对象」，选择「字段」（下拉占位「选一个字段」），选择「方式」（「打码」或「隐藏」），点击「加规则」。
5. 点击对话框底部的「保存」。保存成功后提示「已保存」。

### 编辑业务角色

1. 在业务角色列表中找到目标角色，点击右侧的「编辑」。
2. 在弹出的「编辑业务角色 」对话框中修改「名称」、「说明」、「负责人角色」开关、勾选的权限点、数据范围或字段规则（注意：「编号」创建后不能修改）。
3. 点击「保存」。保存成功后提示「已保存」。修改内容对持有该角色的成员立刻生效。

### 删除业务角色

> **危险**
>
> 删除业务角色不可撤销。如果组织内仍有成员持有该角色，系统将禁止删除。

1. 在业务角色列表中找到目标角色，点击行右侧的删除按钮（无障碍提示为「删除」加上角色名称）。
2. 系统弹出确认对话框「删除业务角色……？」，说明「仍有成员持有的角色不能删除。」。
3. 点击「删除」。删除成功后提示「已删除」。若仍有成员持有该角色，系统会拒绝删除。

### 开启精细权限

> **注意**
>
> 开启精细权限后，组织内未被授予业务角色的成员将无法查看任何业务数据。请确保已完成角色创建与成员任职分配后再开启。

1. 在页面顶部的「精细权限」区域，将「按业务角色控制数据」开关拨到开启状态。
2. 系统弹出二次确认对话框「开启精细权限？」，对话框中明确列出影响范围：
   - 「成员默认没有任何业务数据的访问权限，只有角色授予的才有。」
   - 「管理员不受影响；审计员仍可只读查看全部数据。」
   - 若组织内尚未创建业务角色，显示提示：「现在还没有创建角色：切换后成员将看不到任何数据，建议先建好角色并分配。」
   - 若尚未给任何成员分配角色，显示提示：「还没有给任何成员分配角色：切换后成员将看不到任何数据。」
3. 点击对话框中的「开启」按钮。
4. 开启成功后提示「精细权限已开启」，徽标切换为「已开启」。

### 关闭精细权限

1. 在「精细权限」区域，将「按业务角色控制数据」开关拨到关闭状态。
2. 系统**不弹二次确认**，开关即时生效。
3. 界面提示「精细权限已关闭：成员按默认规则读写」，徽标切换为「未开启」。此时成员按默认规则读写业务数据，业务角色暂不限制数据，部门和负责人照常用于记录归属与审批。

### 给人任职

业务角色本身不直接绑定成员，需在[成员管理](/admin/members)中完成任职分配：

1. 在左侧导航进入「组织结构」→「成员」，或在组织架构中点击成员卡片，打开成员详情抽屉。
2. 找到「主部门」设置，勾选「在主部门担任的业务角色」。
3. 若成员在多个部门任职（如多店管理或跨部门任职），点击「加一条任职」：
   - 在新增行中分别选择「角色」与「部门」。
   - 每行必须同时选定角色与部门，未选全时提示「每条任职都要选角色和部门」。
   - 同一个部门不能重复分配相同的角色，重复时提示「同一个部门的同一个角色重复了」。
   - 一位成员的任职记录受上限控制，超出时提示「最多……条任职」（默认最多 50 条）。
   - 由企业微信同步生成的任职行带有提示「企业微信同步，在企业微信里调整」，不可在界面删除；手动添加的任职行可点击删除按钮移除。
4. 点击「保存」。保存成功后提示「部门与业务角色已保存」。
   - 若当前「精细权限」处于关闭状态，界面会提示：「精细权限未开启：业务角色暂不限制数据，负责人角色照常用于审批。」。

## 状态说明

精细权限控制模式状态：

| 状态徽标 | 模式说明 | 成员数据访问表现 | 管理员与审计员表现 |
|---|---|---|---|
| 「未开启」 | 基础模式（默认规则） | 成员按默认规则读写业务数据，业务角色暂不限制数据；部门和负责人照常用于记录归属与审批 | 管理员与审计员正常访问 |
| 「已开启」 | 精细权限模式（按业务角色控制） | 成员只能看到、改动业务角色授予的数据；没有业务角色的人看不到业务数据 | 管理员不受影响；审计员只读全部 |

权限与规则合并计算说明：
- **数据范围计算**：
  - 主部门持有的角色：若数据范围设为「本部门的」，涵盖主部门与兼任部门。
  - 在其他部门任职的角色：数据范围和负责人角色均按该任职所在的具体部门计算。
  - 成员持有多个角色时，数据权限范围取**并集**。
  - 当数据超出成员的数据范围时，单条记录在界面上表现为找不到，不会泄露记录的存在。
- **字段规则计算**：
  - 仅对该角色可查看的对象生效。
  - 字段规则仅在成员持有的**每个能读取该对象的角色都设置了限制时**才生效。
  - 若不同角色设置的限制规则存在冲突，按较轻规则生效（「打码」轻于「隐藏」）。
  - 「打码」字段在界面上显示为 `••••`；「隐藏」字段在接口中不返回，两者均不可修改。
- **内置负责人角色**：
  - 系统内置负责人角色（名称为「部门负责人」），专门用于审批流程中查找部门负责人，本身不带有业务数据权限。

## 让助手帮你做

你可以让助手（Agent）协助你管理业务角色、配置数据权限或调整成员任职。

你可以这样对助手说：
> “建一个店长角色，只能看本店的订单”
> “把店长设成负责人角色”
> “销售经理能看本部门及下级的客户，手机号打码”
> “给张三在济南2店再兼一个店长”
> “打开精细权限”
> “先别按角色卡数据，关掉精细权限”

> **注意**
>
> 助手的以下操作涉及组织安全与数据可见范围，属于高风险操作。执行前助手会展示确认卡片，必须由你手动点击确认：
> - **切换权限模式**：提示「切换后，组织里每个成员能看到、能修改的业务数据立刻按新的模式计算。」（模式包括「基础（按平台角色）」与「按组织角色」）。在基础模式下修改角色时，预演可能会注明角色需切换到「按组织角色」后才限制数据。
> - **新建角色**：提示「角色建好后，被授予它的成员就拥有其中的权限。」。
> - **修改角色**：提示「持有这个角色的每个成员的权限会立刻随之改变。」。
> - **删除角色**：若当前仍有成员持有该角色，助手会直接拒绝删除。
> - **调整成员的部门与角色**：提示「这位成员能看到、能修改的业务数据会随部门与角色改变。」。

助手不能做的事项：
- 不能修改成员的管理权限（管理权限需在管理员设置中调整）；
- 不能为部门管理员调整任职；
- 不能撤销由企业微信同步生成的任职；
- 不能配置[会员](/apps/membership)应用中的关系角色（需前往会员应用配置）。

## 设置

| 设置项 | 作用 | 取值 | 默认值 | 谁能改 |
|---|---|---|---|---|
| 「按业务角色控制数据」（精细权限） | 开启后成员仅能访问业务角色授予的数据；关闭时成员按默认规则读写业务数据 | 开启 / 关闭 | 关闭 | 管理员（开启时有二次确认） |

> **提示**
>
> 业务角色本身是具体的业务数据配置，不是全局设置开关。

## 注意事项

- **数量与长度限制**：
  - 组织内业务角色最多创建 100 个。
  - 角色「名称」最多 60 个字，角色「说明」最多 300 个字。
  - 单个业务角色最多勾选 400 项权限。
  - 单个业务角色最多添加 200 条字段规则。
  - 单个成员在组织内的任职记录最多 50 条，去重后的不同业务角色最多 20 个。
  - 组织内部门上限为 5000 个，部门树层级最多 8 层。
- **删除限制**：仍有成员持有的业务角色不能删除。必须先在所有成员详情中解除对该角色的引用后方可删除。
- **生效延迟**：权限变更跨服务副本之间存在约 5 秒的缓存刷新延迟。
- **不可见数据表现**：超出数据范围的记录统一按不存在处理，不会向无权限成员泄露记录的存在。
- **应用更新与新权限点**：当安装新应用或升级现有应用带来新增权限点时，系统不会自动将新权限授予任何已有角色，需要管理员进入本页手动勾选。
- **开关影响与二次确认**：开启精细权限会直接改变全员数据访问范围，无法通过简单的操作提示撤销，因此系统保留了二次确认弹窗；关闭精细权限则无二次确认，立即生效。

## 目前不支持

- 暂不支持角色模板，以及在安装应用时自动分配角色。
- 暂不支持独立软件开发商（ISV）运行时判定组织业务角色。
- 暂不支持部门级字段规则（目前字段规则按业务角色配置）。
- 本页不设独立的「任命」管理页面，任职分配统一在[成员管理](/admin/members)的成员抽屉中进行。
- [会员](/apps/membership)应用中的关系角色（员工与会员的绑定关系）不在组织管理中配置，需前往会员应用处理。

## 常见问题

### 为什么新建并分配了业务角色，成员依然能看到所有数据？

请检查页面顶部的「按业务角色控制数据」（精细权限）是否处于「未开启」状态。在精细权限未开启时，成员按默认规则读写业务数据，业务角色暂不限制数据范围。只有将精细权限开关开启后，角色权限和数据范围才会生效。

### 为什么开启「精细权限」后，普通成员看不到任何业务数据了？

开启精细权限后，普通成员默认没有任何业务数据访问权限，必须通过业务角色显式授权。如果尚未创建业务角色，或者未在[成员管理](/admin/members)中为成员分配角色，成员将无法查看任何业务数据。建议先建好角色并完成成员分配，再开启精细权限。管理员与审计员不受此影响。

### 为什么删除业务角色时提示失败？

系统规定仍有成员持有的业务角色不能删除。请前往[成员管理](/admin/members)，在成员详情中检查主部门角色以及「在其他部门任职」，解除所有成员对该角色的持有，然后再执行删除。

### 为什么成员详情里有些任职无法删除？

标注为「企业微信同步，在企业微信里调整」的任职是由企业微信同步生成的，不能在界面中手动删除，需要前往企业微信管理后台进行调整。

### 成员在多个部门任职且持有不同角色，数据权限如何生效？

成员拥有多个角色时，数据权限范围取并集。在主部门持有的角色，其「本部门的」范围涵盖主部门与兼任部门；在「在其他部门任职」持有的角色，其数据范围按该任职所在的具体部门计算。对于字段规则，只有当成员持有的所有能读取该对象的角色都配置了字段限制时才生效；若存在「打码」与「隐藏」冲突，系统按较轻的「打码」生效。
