权限点的问题

来源:12-1 角色权限树结构接口开发-1

371425

2019-10-28

    // 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回答

Jimin

2019-10-28

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

0
1
371425
非常感谢!终于搞明白了
2019-10-29
共1条回复

Java开发企业级权限管理系统

源于企业真实Java项目,涉及大量高级技巧,覆盖权限管理开发技术

2261 学习 · 1347 问题

查看课程