package com.basic.x01.base;
|
|
import java.util.List;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import org.springframework.stereotype.Controller;
|
|
import com.basic.x01.system.model.TSysUser;
|
import com.basic.x01.systemMenu.MenuFilter;
|
import com.basic.x01.systemMenu.MenuItem;
|
import com.basic.x01.systemMenu.MenuUtil;
|
|
import framework.base.FrameBaseController;
|
|
/**
|
* 全部控制器的基类,提供控制器的工具
|
*
|
* @company 北京贝思科技术有限公司
|
* @author liuyajun, 8384503@qq.com
|
* @date 2016年1月13日
|
* @time 上午8:32:35
|
*/
|
|
@Controller
|
public class BaseController extends FrameBaseController {
|
public final static String SESSION_LOGINED_USER_KEY = "SESSION_LOGINED_USER_KEY";
|
|
public TSysUser getLoingedUser(){
|
return (TSysUser)this.getRequest().getSession().getAttribute(SESSION_LOGINED_USER_KEY);
|
}
|
|
public static TSysUser getLoingedUser(HttpServletRequest req){
|
return (TSysUser)req.getSession().getAttribute(SESSION_LOGINED_USER_KEY);
|
}
|
|
public String getCurrentActionId(){
|
return (String)this.getRequest().getAttribute("currentRequestActionId");
|
}
|
/**
|
* 检查权限
|
* @param actions 英文逗号分隔的actionId串
|
* @return true 有权限
|
*/
|
public boolean checkAccess(String actions){
|
boolean check = checkAccess(this.getRequest(), actions);
|
this.getRequest().setAttribute(actions, check?"y":"n");
|
return check;
|
}
|
/**
|
* 检查权限
|
* @param req
|
* @param actions 英文逗号分隔的actionId串
|
* @return true 有权限
|
*/
|
public static boolean checkAccess(HttpServletRequest req, String actions) {
|
if(req ==null || actions==null || actions.trim().length() ==0){
|
return false;
|
}
|
|
TSysUser user = BaseController.getLoingedUser(req);
|
if(user==null){
|
return false;
|
}
|
|
//如果正常进来,这里一定有actionList
|
@SuppressWarnings("unchecked")
|
List<String> actionList = (List<String>)req.getAttribute(
|
MenuFilter.FRAME_REQUEST_ACTION_LIST);
|
|
if(actionList==null || actionList.size()==0){
|
return false;
|
}
|
|
String[] actionArray = actions.trim().replace(" ", "")
|
.split(",");
|
|
for(String actionId : actionArray){
|
if(actionId==null || actionId.trim().length()==0){
|
continue;
|
}
|
|
MenuItem menu = MenuUtil.getMenuItemByActionId(actionId);
|
if(menu==null){
|
continue;
|
}
|
|
if(MenuFilter.checkActionTree(actionList, menu)){
|
return true;
|
}
|
}
|
|
return false;
|
}
|
|
}
|