|
@@ -10,12 +10,18 @@ import com.xy.entity.join.SysMenuJoinSysRoleMenu;
|
|
|
import com.xy.mapper.SysMenuMapper;
|
|
|
import com.xy.mapper.SysRoleMapper;
|
|
|
import com.xy.mapper.SysSystemMapper;
|
|
|
-import com.xy.utils.*;
|
|
|
+import com.xy.utils.Beans;
|
|
|
+import com.xy.utils.Emptys;
|
|
|
+import com.xy.utils.RedisService;
|
|
|
+import com.xy.utils.SpringBeanUtils;
|
|
|
import icu.mhb.mybatisplus.plugln.core.JoinLambdaWrapper;
|
|
|
import lombok.Data;
|
|
|
import lombok.experimental.Accessors;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
+import org.springframework.web.context.request.RequestContextHolder;
|
|
|
+import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -131,17 +137,17 @@ public class RedisCache {
|
|
|
* 判断数据查询权限
|
|
|
*
|
|
|
* @param loginId 登录id
|
|
|
- * @param dataUri 数据接口uri
|
|
|
* @return true=管理员数据查询权限 false=普通查询权限
|
|
|
*/
|
|
|
- public static boolean getDataAuth(Long loginId, String dataUri) {
|
|
|
+ public static boolean getDataAuth(Long loginId) {
|
|
|
+ HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
|
|
//获取redis缓存
|
|
|
List<CacheEntity> cacheEntities = getRedisService().getMap(getKey(loginId), DEFAULT_STSTEM_ID);
|
|
|
//遍历角色
|
|
|
for (CacheEntity cacheEntity : cacheEntities) {
|
|
|
//根据 接口uri和管理员数据查询权限=true 查找角色菜单,找到则有管理员数据查询权限,反之普通查询权限
|
|
|
SysMenuJoinSysRoleMenu sysMenuJoinSysRoleMenu = new JArrayList<>(cacheEntity.getList()).filter()
|
|
|
- .eq(SysMenuJoinSysRoleMenu::getInterfaceUri, dataUri)
|
|
|
+ .eq(SysMenuJoinSysRoleMenu::getInterfaceUri, request.getRequestURI())
|
|
|
.eq(SysMenuJoinSysRoleMenu::getSelectIsAdmin, true)
|
|
|
.object();
|
|
|
if (sysMenuJoinSysRoleMenu != null) {
|
|
@@ -155,13 +161,12 @@ public class RedisCache {
|
|
|
* 判断数据查询权限
|
|
|
*
|
|
|
* @param loginId 登录id
|
|
|
- * @param dataUri 数据接口uri
|
|
|
* @param lambdaQueryWrapper 查询构造器
|
|
|
* @param function 普通查询权限时,条件lambda引用字段
|
|
|
* @return true=管理员数据查询权限 false=普通查询权限
|
|
|
*/
|
|
|
- public static <T> boolean getDataAuth(Long loginId, String dataUri, LambdaQueryWrapper<T> lambdaQueryWrapper, SFunction<T, ?> function) {
|
|
|
- boolean dataAuth = getDataAuth(loginId, dataUri);
|
|
|
+ public static <T> boolean getDataAuth(Long loginId, LambdaQueryWrapper<T> lambdaQueryWrapper, SFunction<T, ?> function) {
|
|
|
+ boolean dataAuth = getDataAuth(loginId);
|
|
|
if (!dataAuth) {
|
|
|
lambdaQueryWrapper.eq(function, loginId);
|
|
|
}
|