From 3eb2f3447f8e62a79b1cf6a352eac87284302694 Mon Sep 17 00:00:00 2001 From: caiti Date: Tue, 17 May 2022 21:54:04 +0800 Subject: [PATCH] fix: 新增用户不分配角色的情况会空指针 --- yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java index d213fc1..8474507 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java @@ -8,8 +8,8 @@ import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.common.util.collection.MapUtils; import cn.iocoder.yudao.framework.common.util.json.JsonUtils; import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; -import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; +import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; @@ -248,7 +248,12 @@ public class PermissionServiceImpl implements PermissionService { @Override public Set getUserRoleIdsFromCache(Long userId, Collection roleStatuses) { - Set roleIds = new HashSet<>(userRoleCache.get(userId)); + Set cacheRoleIds = userRoleCache.get(userId); + // 创建用户的时候没有分配角色,会存在空指针异常 + if (cacheRoleIds == null || cacheRoleIds.isEmpty()) { + return Collections.emptySet(); + } + Set roleIds = new HashSet<>(cacheRoleIds); // 过滤角色状态 if (CollectionUtil.isNotEmpty(roleStatuses)) { roleIds.removeIf(roleId -> { -- libgit2 0.21.4