权限标记的问题

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

371425

2019-10-25

   Set<SysAcl> AclSets=new HashSet<>(roleAclList);
	AclSets.addAll(userAclList);
	
	for(SysAcl acl:AclSets) {
		AclDTO alcDto=AclDTO.adapt(acl); 
		 if(UserAclIdSet.contains(acl.getId())) {
			alcDto.setHasAcl(true);
		}
        if(RoleAclIdSet.contains(acl.getId())) {
        	alcDto.setChecked(true);
		}
        aclDtoList.add(alcDto);
	}

这里的两个判断没理解是啥意思?
if(UserAclIdSet.contains(acl.getId())) {
alcDto.setHasAcl(true);
}
1。为什么判断UserAclIdSet是否包含当前权限点的id 就为DTO对象设置为ture?
if(RoleAclIdSet.contains(acl.getId())) {
alcDto.setChecked(true);
}
2。为什么判断RoleAclIdSet是否包含当前权限点的id 就为DTO对象设置为ture?
3.这两个判断互换的话 可以吗?

写回答

2回答

Jimin

2019-10-25

你好,这两段代码处理的逻辑不同且没有交集,因此可以交换。具体说一下你其他的疑问:
这里代码为什么这样写,其实课程视频里有专门介绍,如果没看视频或者忽略了,确实会很难懂,关键点在于理解这两个字段的根本含义。

一个用户进行角色权限调整时,除了展示出所有的权限,还要将角色之前已分配的权限默认给勾选上,代表这个角色已经分配的权限,这里的checked字段的作用就是决定是否需要默认勾选上;同时,进行角色权限调整的用户,不一定是具有所有权限,而这个用户只能操作他拥有的权限,hasAcl字段的作用就是决定用户是否具体当前权限点操作权限。

0
0

371425

提问者

2019-10-25

老师 请问一下  假如当前用户登陆后 根据用户id获取到他当前所有的权限点 那为啥还要获取角色的权限点?

0
0

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

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

2260 学习 · 1347 问题

查看课程