*/
public class ManagerPowerInterceptor implements Interceptor {
@SuppressWarnings("unchecked")
public void intercept(ActionInvocation ai) {
Controller ctrl=ai.getController();
ctrl.setAttr("root","");
ctrl.setAttr("StaticCfg", new StaticCfg());
// Record po= (Record)ctrl.getSessionAttr("manager");
String sid=ctrl.getSession().getId();
Record po=(Record)MemcacheTool.mcc.get(sid);
if(po==null){
/*String ckey=ai.getControllerKey();
if(ckey.contains("webadmin")){
ctrl.redirect(ctrl.getRequest().getContextPath()+"/webadmin");
}else*/
ctrl.renderText("{\"statusCode\":301,\"message\":\"登录超时,请重新登录!\"}");
}else{
boolean v=true;
String code=null;
PowerBind p=ai.getController().getClass().getAnnotation(PowerBind.class);
if(p!=null){
v=p.v();
code=p.code();
}
p=ai.getMethod().getAnnotation(PowerBind.class);
if(p!=null){
v=p.v();
code=p.code();
}
boolean f=false;
if(v==true){
/**菜单权限判断*/
List<Record> menus=(List<Record>)MemcacheTool.mcc.get("menu"+sid);
if(menus!=null&&menus.isEmpty()==false){
if(checkPower(menus,ai.getActionKey(),code)){//链接或安全码匹配
ctrl.setAttr("powersafecodelist",MemcacheTool.mcc.get("powersafecodelist"+sid));
ai.invoke();//注意 一定要执行此方法
}else{
f=true;
}
}else{
f=true;
}
}else{
ai.invoke();//注意 一定要执行此方法
}
if(f)
ctrl.renderText("{\"statusCode\":300,\"message\":\"<font color='red'><B>您未有此操作权限!请勿越权操作!<br>请重新登录获得最新权限设置!</B></font>\"}");
}
}