ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HZERO微服务平台08: 角色合并功能梳理

2021-11-23 19:33:22  阅读:208  来源: 互联网

标签:iam 菜单 角色 08 合并 v1 服务平台 HZERO self


目录

说明:

一个用户可以拥有多个角色, hzero有"角色合并"功能, 开启"角色合并"后对功能、接口有哪些影响?
比如:
登录时显示的菜单是所有角色的菜单还是当前角色的菜单?
菜单管理时, 管理的是所有角色的菜单还是当前角色的菜单?
角色管理时, 管理的是所有角色的菜单还是当前角色的菜单?
网关鉴权时, 校验的是所有角色的权限还是当前角色的权限?

相关功能、接口

角色的获取

CustomUserDetails对象:
getRoleId() 获取当前角色
roleMergeIds() 获取合并的角色列表

登陆时查询菜单

/iam/v1/menus/tree?lang=zh_CN&unionLabel=false

登陆时查询菜单树;
实测: 有合并角色的效果;

/iam/v1/menus/tree?labels=IOSP_MENU&lang=zh_CN&roldId=142310205194166272&unionLabel=false 这里的roleId参数无效;

代码考虑了角色合并:

MenuController#listNavMenuTree
MenuRepositoryImpl#selectRoleMenuTree
List<Long> roleIds = self.roleMergeIds();
List<Menu> menus = menuMapper.selectRoleMenus(roleIds, tenantId, finalLang, labels, unionLabel);

【菜单配置】

/iam/v1/0/menus/manage-tree?page=0&scope=CUSTOM&size=10

只过滤了当前角色:

MenuRepositoryImpl#selectMenuTreeInTenant
menuParams.setRoleId(self.getRoleId());

【角色管理】

/iam/v1/roles/self/manageable-roles?adminRoleId=142310205194166272&page=0&size=10

只过滤了当前角色:

RoleController#listSelfManageableRoles
RoleServiceImpl#selectSelfManageableRoles
RoleRepositoryImpl#selectSelfManageableRoles
params.setUserId(self.getUserId());

权限检查

/iam/v1/menus/check-permissions

实测: 有合并角色的效果;

考虑了合并角色

MenuController#checkPermissions
MenuRepositoryImpl#checkPermissionSets(java.util.List<java.lang.String>)
results = menuMapper.checkPermissionSets(self.roleMergeIds(), codes);

网关权限检查

实测: 有合并角色的效果;

user考虑了合并角色, client没有角色合并;

CommonRequestCheckFilter#run
roleIds = details.roleMergeIds();

角色分配api时能够查看的api列表

单据权限、数据权限, 应该可以;
实测: 可以

constant.DocTypeScript
            "<bind name=\"roleMergeIdList\" value=\"@xjyt.sjgs.core.oauth.DetailsHelper@getUserDetails().roleMergeIds()\" /> \n" +

前端切换当前角色按钮的显示/隐藏

如果返回的是空列表, 就不显示切换角色:
/iam/v1/member-roles/self-roles

MemberRoleController#listSelfRoles
RoleRepositoryImpl#selectSelfCurrentTenantRoles
// 如果只有一个层级的角色 则不返回角色列表,否则按层级分组,每个层级只返回一个角色

标签:iam,菜单,角色,08,合并,v1,服务平台,HZERO,self
来源: https://www.cnblogs.com/QIAOXINGXING001/p/15594754.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有