一、权限设计三要素
用户、角色、资源
用户:对应单个的系统用户,一个用户一个账号。sysuser
角色:某一类用户的分组,比如管理员、员工等等。sysrole
资源:系统的内容资源,对不同的用户或者角色开放。资源包含:菜单、按钮、 数据
二、三要素的关系
用户与角色:用户属于某个角色,角色可以包含多个用户。本项目的角色为内置的5个角色:管理员、员工、代理商、保险商家、商城商家。
角色与资源:角色具有资源访问权限。资源分为两类:菜单和按钮为一类,数据权限单独为一类。
三、对接说明
1、功能列表(包含父菜单type=0、菜单type=1、以及按钮type=2):
接口:/sys/menu/list/tree
2、角色所具有的权限
接口:/sys/role/info/{roleId}
结果中
menuIdList:已关联的菜单id(包含按钮的Id),需要回落到第一步功能列表中去。
menuDataPermissionList:已关联菜单的数据权限。
{
"menuId": 2,
"dataPermission": "1" # 1-全部数据 0-当前账号的数据
}
3、保存权限
接口:/sys/role/update
有权限的菜单以及按钮id封装到menuIdList数组中,数据权限以 [{"menuId": 2,"dataPermission": "1" }]的形式封装。
如下所示
{
"menuDataPermissionList": [
{
"dataPermission": "1",
"menuId": 196
}
],
"menuIdList": [
196,197,198,199
],
"roleId": 4,
"roleName":"商城商家"
}
4、登录时根据后台权限,获取可访问的菜单
接口:/sys/menu/nav 导航菜单(已按权限过滤)
网友评论