56 lines
2.7 KiB
Markdown
56 lines
2.7 KiB
Markdown
# 文档权限页面接口接入说明
|
||
|
||
依据 default_OpenAPI (1).json,文档权限页面当前按“文档模板”维度接入权限。页面保留原型的三部分:
|
||
|
||
1. **文档库权限矩阵**:说明可见、可用、可维护和继承规则。
|
||
2. **按角色授权**:选择一个文档模板,调整角色的 VIEW、USE、MAINTAIN。
|
||
3. **按科室授权**:沿用当前模板,调整科室的 VIEW、USE、MAINTAIN。
|
||
|
||
## 已接入接口
|
||
|
||
| 用途 | 方法 | 路径 |
|
||
| ---------------------- | ------ | --------------------------------------------------------- |
|
||
| 查询可配置模板 | GET | /api/v1/templates |
|
||
| 查询角色 | GET | /api/v1/roles |
|
||
| 查询科室 | GET | /api/v1/departments |
|
||
| 查询模板权限及继承结果 | GET | /api/v1/templates/{templateId}/permissions |
|
||
| 绑定模板权限 | POST | /api/v1/templates/{templateId}/permissions |
|
||
| 撤销模板权限 | DELETE | /api/v1/templates/{templateId}/permissions/{permissionId} |
|
||
|
||
权限绑定请求使用 OpenAPI 中的 PermissionBindingRequest:
|
||
|
||
```json
|
||
{
|
||
"subjectType": "ROLE",
|
||
"subjectId": "<role-or-department-uuid>",
|
||
"permissionLevel": "USE",
|
||
"effect": "ALLOW"
|
||
}
|
||
```
|
||
|
||
权限等级映射:
|
||
|
||
- VIEW:可浏览模板
|
||
- USE:可发起签署
|
||
- MAINTAIN:可维护模板
|
||
|
||
## 页面保存行为
|
||
|
||
当前契约没有更新权限绑定的 PUT 接口,因此开关按以下规则保存:
|
||
|
||
- 开启:删除同主体、同等级的直接 DENY;没有有效允许权限时 POST ALLOW。
|
||
- 关闭:撤销直接 ALLOW;如果仍有继承的 ALLOW,POST 直接 DENY 覆盖继承。
|
||
- 继承 DENY 没有持久化绑定 ID,且契约约定拒绝优先,页面将其显示为不可直接覆盖。
|
||
|
||
页面不会把继承结果当成可删除的直接绑定,也不会伪造全局权限矩阵数据。真实环境接口没有数据时会显示空态。
|
||
|
||
## 当前 OpenAPI 未提供的能力
|
||
|
||
如果产品要求“跨全部文档模板”的全局角色/科室权限矩阵,后端还需要提供以下能力之一:
|
||
|
||
- 全局角色权限查询与批量保存接口;
|
||
- 全局科室权限查询与批量保存接口;
|
||
- 或提供带模板维度的批量权限查询/保存接口,避免前端逐个模板请求。
|
||
|
||
另外,当前 GET /api/v1/templates 的语义是查询当前用户有权限查看的模板。若权限管理员需要配置自己当前不可见的模板,请后端提供管理员可见的模板列表语义或专用接口。
|