@RequestMapping("add_category.do") @ResponseBody public ServerResponse addCategory(HttpSession session,String categoryName,@RequestParam(value = "parentId",defaultValue = "0") int parentId){ User user = (User)session.getAttribute(Const.CURRENT_USER); if(user == null){ return ServerResponse.createByErrorCodeMessage(ResponseCode.NEED_LOGIN.getCode(),"用户未登录,请登录"); } //校验一下是否是管理员 if(iUserService.checkAdminRole(user).isSuccess()){ //是管理员 //增加我们处理分类的逻辑 return iCategoryService.addCategory(categoryName,parentId); }else{ return ServerResponse.createByErrorMessage("无权限操作,需要管理员权限"); } }
添加品类的前提是session中用户存在并且是管理员,而判断用户是不是管理员是由UserManagerController完成。
后面这段校验管理员的无论user 是否为 null都不会被执行?!
如果user != null, 说明已经登录,UserManagerController校验user是不是管理员。无存在意义。
user == null,存在两种情况
2.1 用户一开始就未登录
2.2 session信息过期
这两种情况在发送add_category.do请求的时候,return status = 10 强制登录。校验管理员代码不会被执行。