0
17
48
51
请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

权限点的问题

    // 1、当前用户已分配的权限点==当前登陆的用户的所有权限点
    List<SysAcl> userAclList = sysAclService.getCurrentUserAclList();
    // 2、当前角色分配的权限点
    List<SysAcl> roleAclList = sysAclService.getRoleAclList(RoleId);

这两句代码:第一个是获取当前角色的权限点 然后第二个是获取当前角色的权限点
问题1:第二个代码的RoleId 需要手动传入 到时候 用户操作的时候 你怎么判断当前的RoleId是什么呢?
问题2:用户在操作的过程中 获取当前用户所有的权限点,为什么还要获取当前的角色的权限点? 我的理解是当前角色的权限点包含了所有的权限点 这些权限点分布在不同的权限模块下,只是区别在于当前用户是否拥有哪些角色,查询出当前角色拥有的角色下的权限点并设置为ture,
问题3:有没有同一个权限点:checked 字段= false; hasAcl = ture;的情况啊?
问题4:userAclList和roleAclList 有什么关联吗?为啥要查询出他们俩的并集不重复的部分?
Set AclSets=new HashSet<>(roleAclList);
AclSets.addAll(userAclList);

正在回答

插入代码

1回答

1、roleid是前端用户点击时传到后端的
2、取用户权限点是为了确认用户可以操作哪些权限点,操作用户不一定是超级管理员,拥有的权限可能很有限,非超级管理员不能操作所有的权限点,这个主要是从安全角度出发的;查询角色是为了确定角色已经分配过的权限,从用户体验角度出发,将已经分配的权限默认勾选上。
3、有的。任何一个角色刚创建完,没分配过权限基本都是这种状态,没有一个权限点checked=true,而当前操作的是超级管理员,hasAcl=true。已经给某个角色分配过一些权限点,没有分配的权限点checked=true,hasAcl=true
有一个点你可以理解错了,实际生产环境,基本上每个角色都不会分配所有权限,而是一部分权限。
4、这两个合在一起是可以展示的权限点,有些权限点当前用户是感知不到的

0 回复 有任何疑惑可以回复我~
  • 提问者 371425 #1
    非常感谢!终于搞明白了
    回复 有任何疑惑可以回复我~ 2019-10-29 17:51:49

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号