权限
Autable 的权限系统围绕数据库 owner、角色、用户、workflow 和 form 资源展开。
数据库 owner
数据库 owner 是最高权限主体。owner 可以:
- 管理数据库权限。
- 删除字段。
- 删除记录。
- 删除 workflow。
- 删除 form。
- 查看历史记录。
owner 设计上预留多个 owner 的扩展空间。
表格权限
表格权限分为三类。
字段权限
字段权限决定能看到和能写哪些字段:
- 全部读。
- 全部写。
- 部分字段读写。
- 无权限。
只有拥有全部字段写权限的用户才能新增字段。
记录权限
记录新增/删除是独立权限:
- 可新增。
- 可删除。
- 可新增和删除。
- 无权限。
更新记录字段依赖字段写权限。
视图权限
视图权限决定能读取或修改哪些视图:
- 全部读。
- 全部写。
- 部分视图读写。
- 无权限。
新增视图需要全部视图写权限。删除视图只有 owner 可以操作。
Workflow 权限
workflow 支持:
- 全部读。
- 全部写。
- 部分 workflow 读写。
新增 workflow 需要全部 workflow 写权限。删除 workflow 只有数据库 owner 可以操作。
Form 权限
form 权限和 workflow 类似:
- 全部读。
- 全部写。
- 部分 form 读写。
发布表单也不会绕过权限。打开表单、提交表单、写目标表都走登录用户权限。
角色
角色把一组 grants 绑定到成员上。成员可以是:
- user。
- workflow。
workflow 成为角色成员后,会继承角色授予的表格权限。
互斥规则
“全部读写”和“部分读写”是互斥的。选择全部权限时,会清掉对应资源的部分权限;选择部分权限时,会清掉对应资源的全部权限。
这能避免一个角色同时拥有难以解释的全局权限和局部权限。