📄 boardpermissioninterceptor.java
字号:
Set bspset = bmpMap[1].entrySet(); //版主特殊权限
Iterator bspit = bspset.iterator();
while (bspit.hasNext()) {
Map.Entry p = (Map.Entry) bspit.next();
us.getBoardSpecialPermission().put(p.getKey(), p.getValue());
}
}
for (int i = 0; i < board.getParentIDs().size(); i++) {
Board pboard = boardService.getBoardByID( ( (Long) (board.getParentIDs().get(i))).longValue());
BoardMaster pbm = (BoardMaster) pboard.getBoardMaster().get(us.getUserName());
if (pbm != null && pbm.getOverChildPurview() == 1) {
Map[] bmpMap = boardService.getBoardMasterPermission(pbm.getRoleID()); //取得斑竹权限
Set bpset = bmpMap[0].entrySet(); //版主普通权限
Iterator bpit = bpset.iterator();
while (bpit.hasNext()) {
Map.Entry p = (Map.Entry) bpit.next();
Permission permission = (Permission) p.getValue();
String[] actions = permission.getAction().split(",");
for (int j = 0; j < actions.length; j++) {
String[] resources = ( (String) p.getKey()).split(",");
us.getBoardPermission().put(BBSCSUtil.getActionMappingURL(resources[0],
httpServletRequest) + "?action=" + actions[j], p.getValue());
}
}
Set bspset = bmpMap[1].entrySet(); //版主特殊权限
Iterator bspit = bspset.iterator();
while (bspit.hasNext()) {
Map.Entry p = (Map.Entry) bspit.next();
us.getBoardSpecialPermission().put(p.getKey(), p.getValue());
}
}
}
//更新在线用户信息
UserOnlineService userOnlineService = (UserOnlineService) wc.getBean("userOnlineService");
UserOnline uo = userOnlineService.findUserOnlineByUserID(us.getId()); //取得用户在线信息
if (uo != null) {
uo.setAtPlace(board.getBoardName());
uo.setBoardID(bid);
try {
userOnlineService.saveUserOnline(uo);
}
catch (BbscsException ex) {
logger.error(ex);
}
}
}
if (board.getNeedPasswd() == 1 && StringUtils.isNotBlank(board.getPasswd())) {//版区需要密码访问
if (!us.isHaveBoardSpecialPermission(Constant.SPERMISSION_INBOARD_NOT_NEEDPASSWD)) {
//System.out.println("user boardpass:" + us.getBoardPass());
if (StringUtils.isBlank(us.getBoardPass())) {
return actionMapping.findForward("boardPasswd");
}
else if (!board.getPasswd().equals(us.getBoardPass())) {
//版区需要密码,需要跳转
ActionMessages errors = new ActionMessages();
errors.add("error.board.passwd", new ActionMessage("error.board.passwd"));
ActionUtils.addErrors(httpServletRequest, errors);
return actionMapping.findForward("boardPasswd");
}
}
}
if (board.getIsAuth() == 1) {//版区需要授权访问
BoardMaster bm = (BoardMaster) board.getBoardMaster().get(us.getUserName());
if (bm == null && !us.isHaveBoardSpecialPermission(Constant.SPERMISSION_INBOARD_NOT_NEEDAUTH)) { //不是斑竹,并且没有不需要授权就可以进入的权限
//版区需要授权
BoardAuthUserService boardAuthUserService = (BoardAuthUserService) wc.getBean("boardAuthUserService");
if (boardAuthUserService.findBoardAuthUserByBidUid(bid, us.getId()) == null) {
//不是授权用户,需要跳转
if (ajax.equalsIgnoreCase("html")) {
//System.out.println("html");
ActionMessages errors = new ActionMessages();
errors.add("error.user.not.auth", new ActionMessage("error.user.not.auth"));
ActionUtils.addErrors(httpServletRequest, errors);
return actionMapping.findForward("error");
}
else if (ajax.equalsIgnoreCase("shtml")) {
ActionMessages errors = new ActionMessages();
errors.add("error.user.not.auth", new ActionMessage("error.user.not.auth"));
ActionUtils.addErrors(httpServletRequest, errors);
return actionMapping.findForward("htmlError");
}
else {
//System.out.println("xml");
AjaxMessagesXML ajaxMessagesXML = (AjaxMessagesXML) wc.getBean("ajaxMessagesXML");
ajaxMessagesXML.setMessage(Constant.CODEID_BOARDID_ERROR,
Constant.MESSAGE.getMessage(httpServletRequest.getLocale(),
"error.user.not.auth"));
httpServletRequest.setAttribute("xmlo", ajaxMessagesXML.getXmlo());
httpServletRequest.setAttribute("messagesDocument", ajaxMessagesXML.getMessagesDocument());
return actionMapping.findForward("ajaxjsp");
}
}
}
}
boolean havePermission = false;
String saction = StringUtils.trimToEmpty(httpServletRequest.getParameter("action"));
String actionURI = httpServletRequest.getRequestURI();
Permission permission = (Permission) us.getBoardPermission().get(actionURI + "?action=*");
if (permission != null) {
havePermission = true;
}
else {
permission = (Permission) us.getBoardPermission().get(actionURI + "?action=" + saction);
if (permission != null) {
havePermission = true;
}
else {
havePermission = false;
}
}
if (havePermission) {
return null;
}
else {
//System.out.println(ajax);
if (ajax.equalsIgnoreCase("html")) {
//System.out.println("html");
ActionMessages errors = new ActionMessages();
errors.add("error.noPermission", new ActionMessage("error.noPermission"));
ActionUtils.addErrors(httpServletRequest, errors);
return actionMapping.findForward("error");
}
else if (ajax.equalsIgnoreCase("shtml")) {
ActionMessages errors = new ActionMessages();
errors.add("error.noPermission", new ActionMessage("error.noPermission"));
ActionUtils.addErrors(httpServletRequest, errors);
return actionMapping.findForward("htmlError");
}
else {
//System.out.println("xml");
AjaxMessagesXML ajaxMessagesXML = (AjaxMessagesXML) wc.getBean("ajaxMessagesXML");
ajaxMessagesXML.setMessage(Constant.CODEID_NO_PERMISSION,
Constant.MESSAGE.getMessage(httpServletRequest.getLocale(),
"error.noPermission"));
httpServletRequest.setAttribute("xmlo", ajaxMessagesXML.getXmlo());
httpServletRequest.setAttribute("messagesDocument", ajaxMessagesXML.getMessagesDocument());
return actionMapping.findForward("ajaxjsp");
}
}
//return null;
}
/**
* afterAction
*
* @param action Action
* @param actionMapping ActionMapping
* @param actionForm ActionForm
* @param httpServletRequest HttpServletRequest
* @param httpServletResponse HttpServletResponse
* @return ActionForward
* @throws IOException
* @throws ServletException
* @todo Implement this net.sf.struts.saif.ActionHaveForwardInterceptor method
*/
public ActionForward afterAction(Action action, ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) throws IOException,
ServletException {
return null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -