-
Couldn't load subscription status.
- Fork 1
Role
marstone edited this page Nov 24, 2020
·
7 revisions
# 按照角色,来定义应用内的授权关系(主谓宾)
roles:
# 定义 everyone 角色
- name: everyone
# 主语
subjects:
- user:
account: *
# 定义该角色可访问权限对象列表
rules:
# 权限对象及其动词和限定:所有用户可以自己的“用户类型(Data节定义)”的数据
- objects:
- kind: data
name: User
verbs:
- name: users
filters:
- name: account
value: "=$ACCOUNT"
# 定义 admins 角色
- name: admins
# 主语,包括三部分用户
subjects:
# 第一部分用户:部门经理,只能访问本部门的数据(limitDept=true)
- post:
code: MANAGERS
# 第二部分用户:人事部门(HR)的全体员工
- post:
code: STAFF
dept:
code: HR
# 第三部分用户:直接指定用户账号
- user:
account: marstone
# 定义该角色可访问权限对象列表
rules:
# 第一组权限对象:用户数据类型(通过Data节定义)的所有操作
- objects:
- kind: data
name: User
verbs:
- name: "*"
# 允许分级授权。r:默认,当前主体拥;w:可授予他人但不能再分级;x:可将x授予其他人
grant: rwx
# 第二组权限对象:可访问所有菜单
- objects:
- kind: menu
name: "*"
# 定义 users 角色
- name: users
subjects:
# 全体员工
- post:
code: STAFF
rules:
# 仅可查询用户数据
- objects:
- kind: data
name: User
verbs:
- name: listUsers
filters:
- name: dept
value: "=$DEPTS"
# 可访问首页(Home)、帮助页(Help)
- objects:
- kind: menu
name: Home
# 是否限定部门,默认false。为true的话,需匹配用户岗位中的部门和菜单的`主管部门*`
limitDept: true
- kind: menu
name: Help
- 菜单的主管部门:通过标签表示,参考 Tags 的 #DeptAccess 命名空间