From a36dc6635f92b1a6a5ea43c801f028dea08a7f0b Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期日, 21 八月 2022 22:44:46 +0800 Subject: [PATCH] 优化多角色数据权限匹配规则 --- src/main/java/com/ruoyi/framework/security/service/SysPermissionService.java | 18 +++++++++++++++++- 1 files changed, 17 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/ruoyi/framework/security/service/SysPermissionService.java b/src/main/java/com/ruoyi/framework/security/service/SysPermissionService.java index 021e9a5..0d4b280 100644 --- a/src/main/java/com/ruoyi/framework/security/service/SysPermissionService.java +++ b/src/main/java/com/ruoyi/framework/security/service/SysPermissionService.java @@ -1,9 +1,11 @@ package com.ruoyi.framework.security.service; import java.util.HashSet; +import java.util.List; import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import com.ruoyi.project.system.domain.SysRole; import com.ruoyi.project.system.domain.SysUser; import com.ruoyi.project.system.service.ISysMenuService; import com.ruoyi.project.system.service.ISysRoleService; @@ -59,7 +61,21 @@ } else { - perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId())); + List<SysRole> roles = user.getRoles(); + if (!roles.isEmpty() && roles.size() > 1) + { + // 澶氳鑹茶缃畃ermissions灞炴�э紝浠ヤ究鏁版嵁鏉冮檺鍖归厤鏉冮檺 + for (SysRole role : roles) + { + Set<String> rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId()); + role.setPermissions(rolePerms); + perms.addAll(rolePerms); + } + } + else + { + perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId())); + } } return perms; } -- Gitblit v1.9.3