package com.jspxcms.core.web.back; import java.util.Set; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.jspxcms.core.support.Context; import com.jspxcms.core.support.Menu; import com.jspxcms.core.support.MenuHolder; /** * NavigationController * * @author liufang * */ @Controller public class NavigationController { @RequestMapping({ "/", "/index.do" }) public String index(HttpServletRequest request, org.springframework.ui.Model modelMap) { Subject subject = SecurityUtils.getSubject(); if (subject.isAuthenticated()) { modelMap.addAttribute("menus", menuHolder.getMenus()); modelMap.addAttribute("user", Context.getCurrentUser(request)); return "index"; } else { return "login"; } } @RequiresPermissions("core:nav:container") @RequestMapping("/container.do") public String container() { return "container"; } @RequiresPermissions("core:nav:nav") @RequestMapping("/nav.do") public String nav(String menuId, String subId, org.springframework.ui.Model modelMap) { Set<Menu> menus = menuHolder.getMenus(); Menu menu = null; for (Menu m : menus) { if (m.getId().equals(menuId)) { if (StringUtils.isNotBlank(m.getPerm())) { Subject subject = SecurityUtils.getSubject(); subject.checkPermission(m.getPerm()); } menu = m; break; } } modelMap.addAttribute("menu", menu); modelMap.addAttribute("subId", subId); return "nav"; } @Autowired private MenuHolder menuHolder; }