授权基本逻辑
- 目前只提供两类对象的授权:
原子
、资源
,完全可以满足实际业务开发的需求 - 只有
叶角色
可以添加用户
,用户自然拥有所属角色的全部授权 叶角色
与用户
是多对多的关系- 采用
白名单策略
,所有角色的授权都必须显式设置(superuser
也不例外)
授权传递机制
CabloyJS中的角色授权
有两种传递机制:
1. 继承传递(纵向)
子角色自动继承所有父角色的授权。比如,角色organization
自动拥有角色authenticated
和root
的授权
2. 聚合传递(横向)
角色可以聚合另一个角色从而拥有该角色的授权。比如,角色superuser
聚合了角色system
,那么角色superuser
会自动拥有角色system
的授权
角色模版
:通过聚合传递
机制可以实现角色模版
的功能,也就是预定义角色
,并为角色分配一组权限,从而便于在实际使用中快速给其他角色授权
授权途径
对原子
和资源
授权有三种途径:
1. 人工授权
如果某些权限只有在实际部署或运行时才能决定,可通过管理界面
进行授权操作
2. 初始授权
如果需要在系统运行时,预先初始化权限,可以在后端API路由version/init
中通过代码分配权限。比如,给模版角色system
分配权限
初始授权
在测试环境
、开发环境
和生产环境
均有效
3. 测试授权
为了测试与开发的便利,还可以在开发阶段
预先初始化权限,可以在后端API路由version/test
中通过代码分配权限。比如,给某些测试角色分配权限
测试授权
仅在测试环境
和开发环境
有效
分级授权
CabloyJS内置对分级授权
的支持。在一个多级组织中,比如集团公司
或者总部与分部
组织中,一级管理员
可以把授权分配给二级管理员
,二级管理员
在指定的授权范围内再对所属组织的下级角色
进行授权
分级授权
是系统内置功能,不需要额外的编码开发,参见免费视频:CabloyJS全栈框架:从入门到精通:025 分级授权
评论: