[重大更新] 数据权限增加角色与菜单关联 实现 角色->菜单->数据权限 控制数据权限功能(实验性功能不稳定)

This commit is contained in:
疯狂的狮子Li
2026-03-12 14:19:54 +08:00
parent 0a42df2ab2
commit 4c5f52d47e
12 changed files with 214 additions and 42 deletions

View File

@@ -8,6 +8,7 @@ import org.dromara.common.core.domain.dto.RoleDTO;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
@@ -107,6 +108,11 @@ public class LoginUser implements Serializable {
*/
private List<RoleDTO> roles;
/**
* 数据权限角色映射 key 为权限码 value 为可参与数据权限计算的角色
*/
private Map<String, List<RoleDTO>> dataScopeRoleMap;
/**
* 岗位对象
*/

View File

@@ -1,5 +1,9 @@
package org.dromara.common.core.service;
import org.dromara.common.core.domain.dto.RoleDTO;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
@@ -25,4 +29,12 @@ public interface PermissionService {
*/
Set<String> getMenuPermission(Long userId);
/**
* 根据角色列表构建数据权限角色映射
*
* @param roles 角色列表
* @return key 为权限码 value 为命中的角色列表
*/
Map<String, List<RoleDTO>> getDataScopeRoleMap(List<RoleDTO> roles);
}

View File

@@ -449,4 +449,15 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils {
}
/**
* 检查字符串是否包含任意一个指定的字符序列
*
* @param cs 要检查的字符串
* @param searchCharSequences 需要查找的字符序列数组
* @return 如果包含任意一个字符序列返回 true否则返回 false
*/
public static boolean containsAny(final CharSequence cs, final CharSequence... searchCharSequences) {
return Strings.CS.containsAny(cs, searchCharSequences);
}
}