2021-04-17 21:33:21 +08:00
|
|
|
|
---
|
|
|
|
|
title: '@nocobase/plugin-permissions'
|
2021-04-21 23:05:10 +08:00
|
|
|
|
order: 1
|
2021-04-17 21:33:21 +08:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# @nocobase/plugin-permissions
|
|
|
|
|
|
|
|
|
|
提供权限模块
|
|
|
|
|
|
|
|
|
|
## 安装
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
yarn nocobase pull permissions --start
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## API
|
|
|
|
|
|
|
|
|
|
<Alert title="还需改进的一些细节" type="warning">
|
|
|
|
|
|
|
|
|
|
- 提供 Permission Model 相关快捷数据操作 API
|
|
|
|
|
- 需要支持从代码层面快捷配置权限,无需经由后台
|
|
|
|
|
系统表相关操作权限可能是直接通过权限 api 配置或者 permission model api,直接写入数据库
|
|
|
|
|
- 提供 ui schema 需要的 fields/actions/pages 相关 permission api
|
|
|
|
|
现在有个 ac.can 可用,实际体验不够直接
|
|
|
|
|
- 数据表权限设置只开放了业务表,系统表权限需要开发自行处理,但无提供相关 api
|
|
|
|
|
如操作记录表、中国行政区表、附件表的情况:
|
|
|
|
|
- 操作记录表只开放查看,只能查看自己有权限能查看的数据表的操作
|
|
|
|
|
- 中国行政区的省市区等数据仅登录用户可查看
|
|
|
|
|
- 附件暂时没做权限限制
|
|
|
|
|
|
|
|
|
|
</Alert>
|
|
|
|
|
|
|
|
|
|
### context.ac.isRoot
|
|
|
|
|
|
|
|
|
|
是否为 root 权限
|
|
|
|
|
|
|
|
|
|
### context.ac.can(collection)
|
|
|
|
|
|
|
|
|
|
判断当前用户权限,支持链式操作。
|
|
|
|
|
|
|
|
|
|
#### ac.can(collection).permissions()
|
|
|
|
|
|
|
|
|
|
获取当前 collection 的所有权限配置
|
|
|
|
|
|
|
|
|
|
#### ac.can(collection).act(actionName).any()
|
|
|
|
|
|
|
|
|
|
是否允许 collection:actionName 操作,允许则返回相关配置
|
|
|
|
|
|
|
|
|
|
#### ac.can(collection).act(actionName).one(resourceKey)
|
|
|
|
|
|
|
|
|
|
具体 resourceKey 值的 collection,是否允许 collection:actionName 操作,允许则返回相关配置
|
|
|
|
|
|
|
|
|
|
#### ac.as(roles).can(collection)
|
|
|
|
|
|
|
|
|
|
指定 roles 的权限判断
|