reactor: 获取路由菜单添加角色权限控制
This commit is contained in:
@@ -9,6 +9,7 @@ import com.youlai.system.model.vo.MenuVO;
|
||||
import com.youlai.system.common.model.Option;
|
||||
import com.youlai.system.model.vo.RouteVO;
|
||||
import com.youlai.system.plugin.syslog.annotation.LogAnnotation;
|
||||
import com.youlai.system.security.util.SecurityUtils;
|
||||
import com.youlai.system.service.SysMenuService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
@@ -19,6 +20,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 菜单控制层
|
||||
@@ -53,7 +55,8 @@ public class SysMenuController {
|
||||
@Operation(summary = "路由列表")
|
||||
@GetMapping("/routes")
|
||||
public Result<List<RouteVO>> listRoutes() {
|
||||
List<RouteVO> routeList = menuService.listRoutes();
|
||||
Set<String> roles = SecurityUtils.getRoles();
|
||||
List<RouteVO> routeList = menuService.listRoutes(roles);
|
||||
return Result.success(routeList);
|
||||
}
|
||||
|
||||
@@ -106,6 +109,5 @@ public class SysMenuController {
|
||||
return Result.judge(result);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.youlai.system.mapper;
|
||||
|
||||
/**
|
||||
* 菜单持久接口层
|
||||
/*
|
||||
* 菜单 访问层
|
||||
*
|
||||
* @author haoxr
|
||||
* @author Ray
|
||||
* @since 2022/1/24
|
||||
*/
|
||||
|
||||
@@ -18,6 +18,6 @@ import java.util.Set;
|
||||
@Mapper
|
||||
public interface SysMenuMapper extends BaseMapper<SysMenu> {
|
||||
|
||||
List<RouteBO> listRoutes();
|
||||
List<RouteBO> listRoutes(Set<String> roles);
|
||||
|
||||
}
|
||||
|
||||
@@ -68,11 +68,6 @@ public class RouteBO {
|
||||
*/
|
||||
private String redirect;
|
||||
|
||||
/**
|
||||
* 拥有路由的权限
|
||||
*/
|
||||
private List<String> roles;
|
||||
|
||||
/**
|
||||
* 【目录】只有一个子路由是否始终显示(1:是 0:否)
|
||||
*/
|
||||
|
||||
@@ -46,9 +46,6 @@ public class RouteVO {
|
||||
@Schema(description = "是否隐藏(true-是 false-否)", example = "true")
|
||||
private Boolean hidden;
|
||||
|
||||
@Schema(description = "拥有路由权限的角色编码", example = "['ADMIN','ROOT']")
|
||||
private List<String> roles;
|
||||
|
||||
@Schema(description = "【菜单】是否开启页面缓存", example = "true")
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
private Boolean keepAlive;
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.youlai.system.model.vo.MenuVO;
|
||||
import com.youlai.system.model.vo.RouteVO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 菜单业务接口
|
||||
@@ -39,7 +40,7 @@ public interface SysMenuService extends IService<SysMenu> {
|
||||
/**
|
||||
* 获取路由列表
|
||||
*/
|
||||
List<RouteVO> listRoutes();
|
||||
List<RouteVO> listRoutes( Set<String> roles);
|
||||
|
||||
/**
|
||||
* 修改菜单显示状态
|
||||
|
||||
@@ -141,9 +141,13 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
* 获取路由列表
|
||||
*/
|
||||
@Override
|
||||
@Cacheable(cacheNames = "menu", key = "'routes'")
|
||||
public List<RouteVO> listRoutes() {
|
||||
List<RouteBO> menuList = this.baseMapper.listRoutes();
|
||||
public List<RouteVO> listRoutes(Set<String> roles) {
|
||||
|
||||
if (CollectionUtil.isEmpty(roles)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
List<RouteBO> menuList = this.baseMapper.listRoutes(roles);
|
||||
return buildRoutes(SystemConstants.ROOT_NODE_ID, menuList);
|
||||
}
|
||||
|
||||
@@ -193,7 +197,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
RouteVO.Meta meta = new RouteVO.Meta();
|
||||
meta.setTitle(routeBO.getName());
|
||||
meta.setIcon(routeBO.getIcon());
|
||||
meta.setRoles(routeBO.getRoles());
|
||||
meta.setHidden(StatusEnum.DISABLE.getValue().equals(routeBO.getVisible()));
|
||||
// 【菜单】是否开启页面缓存
|
||||
if (MenuTypeEnum.MENU.equals(routeBO.getType())
|
||||
|
||||
Reference in New Issue
Block a user