user menu
This commit is contained in:
parent
965d9dd0d1
commit
e1dc2e0494
@ -1,12 +1,15 @@
|
||||
package ink.wgink.login.base.controller.route;
|
||||
|
||||
import ink.wgink.common.component.SecurityComponent;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.interfaces.menu.IMenuBaseService;
|
||||
import ink.wgink.interfaces.role.IRoleMenuBaseService;
|
||||
import ink.wgink.login.base.config.properties.SystemProperties;
|
||||
import ink.wgink.login.base.consts.IUserCenterConst;
|
||||
import ink.wgink.login.base.manager.ConfigManager;
|
||||
import ink.wgink.pojo.bos.UserInfoBO;
|
||||
import ink.wgink.pojo.dtos.menu.MenuDTO;
|
||||
import ink.wgink.pojo.pos.RolePO;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
@ -14,6 +17,7 @@ import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.view.RedirectView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
@ -37,6 +41,8 @@ public class IndexRouteController {
|
||||
private SystemProperties systemProperties;
|
||||
@Autowired(required = false)
|
||||
private IMenuBaseService menuBaseService;
|
||||
@Autowired(required = false)
|
||||
private IRoleMenuBaseService roleMenuBaseService;
|
||||
|
||||
@GetMapping("index")
|
||||
public ModelAndView goIndex() {
|
||||
@ -75,7 +81,29 @@ public class IndexRouteController {
|
||||
}
|
||||
mv.addObject("ws", systemProperties.getWs());
|
||||
if (menuBaseService != null) {
|
||||
List<MenuDTO> menus = menuBaseService.listAllByParentId(IMenuBaseService.MENU_UNIFIED_USER);
|
||||
List<MenuDTO> menus;
|
||||
if (StringUtils.equalsIgnoreCase(ISystemConstant.ADMIN, userInfoBO.getUserUsername())) {
|
||||
// 管理员
|
||||
List<String> menuIds = roleMenuBaseService.listMenuId(ISystemConstant.ADMIN);
|
||||
if (menuIds.isEmpty()) {
|
||||
menus = menuBaseService.listAllByParentId(IMenuBaseService.MENU_UNIFIED_USER);
|
||||
} else {
|
||||
menus = menuBaseService.listAllByParentIdAndIds(IMenuBaseService.MENU_UNIFIED_USER, menuIds);
|
||||
}
|
||||
} else {
|
||||
// 普通用户
|
||||
List<RolePO> rolePOs = securityComponent.getCurrentUser().getRoles();
|
||||
if (!rolePOs.isEmpty()) {
|
||||
menus = new ArrayList<>();
|
||||
} else {
|
||||
List<String> roleIds = new ArrayList<>();
|
||||
for (RolePO rolePO : rolePOs) {
|
||||
roleIds.add(rolePO.getRoleId());
|
||||
}
|
||||
List<String> menuIds = roleMenuBaseService.listMenuId(roleIds);
|
||||
menus = menuBaseService.listAllByParentIdAndIds("0", menuIds);
|
||||
}
|
||||
}
|
||||
mv.addObject("menus", menus);
|
||||
}
|
||||
return mv;
|
||||
|
Loading…
Reference in New Issue
Block a user