功能授权

2018-11-29 09:59:00

功能授权

功能授权主要解决这类问题:能访问后端的哪个功能

一个功能可对应一组后端API路由

菜单功能的特例

授权途径

授权途径有三种:人工授权初始授权测试授权

这里重点说明Cabloy为初始授权测试授权提供的API方法

a-base/backend/src/config/middleware/adapter/role.js

async addRoleFunction({ roleId, functionId, roleRightId = 0 })
名称 说明
roleId 需要被授权的角色Id
functionId 功能Id
roleRightId 如果是原子指令菜单,那么这里就保存原子指令的授权记录Id

原子指令菜单

有两个特别的菜单类型:新建原子原子列表,其权限是与原子权限相关联的。比如,当我们配置了todocreateread权限,也就相应的具有了新建todo查看todo列表这两个菜单项的权限

授权判断

可以通过中间件Api进行授权的判断

中间件判断

Cabloy使用中间件right封装了授权判断的逻辑,只需在后端路由上配置相应的中间件参数即可

a-baseadmin/backend/src/routes.js

{ method: 'post', path: 'role/children', controller: role,
  meta: { right: { type: 'function', name: 'role' } }
},
名称 说明
right 全局中间件right,默认处于开启状态,只需配置参数即可
type function: 判断功能授权
name 功能的名称

Api判断

a-base/backend/src/config/middleware/adapter/function.js

async checkRightFunction({ function: { module, name }, user })


评论: