/** * 站长回复留言板之留言 * * @param mapping * @param form * @param request * @param response * @return * @throws Exception */ protected ActionForward doReply( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { GuestBookForm msgform = (GuestBookForm) form; super.validateClientId(request, msgform); if (StringUtils.isNotEmpty(msgform.getReply())) { UserBean loginUser = super.getLoginUser(request, response); if (loginUser != null) { // 判断是否为站长 SiteBean site = SiteDAO.getSiteByID(msgform.getSid()); if (site != null && site.isOwner(loginUser)) { // 回复留言 GuestBookBean gbean = GuestBookDAO.getMsg(msgform.getSid(), msgform.getId()); if (gbean != null) { String reply = super.autoFiltrate(site, msgform.getReply()); if (reply.length() > MAX_GB_REPLY_LENGTH) reply = reply.substring(0, MAX_GB_REPLY_LENGTH); gbean.setReply(super.filterScriptAndStyle(reply)); gbean.setReplyTime(new Date()); GuestBookDAO.flush(); } } } } String ext = null; if (msgform.getPage() > 1) { ext = "page=" + msgform.getPage(); } return makeForward(mapping.findForward("list"), msgform.getSid(), ext); }
/** * 留言板之发表留言 * * @param mapping * @param form * @param request * @param response * @return * @throws Exception */ protected ActionForward doCreate( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { GuestBookForm msgform = (GuestBookForm) form; super.validateClientId(request, msgform); ActionMessages msgs = new ActionMessages(); while (true) { if (StringUtils.isEmpty(msgform.getContent())) { msgs.add("content", new ActionMessage("error.empty_content")); break; } UserBean loginUser = super.getLoginUser(request, response); if (loginUser == null) { msgs.add("message", new ActionMessage("error.user_not_login")); break; } else if (loginUser.getStatus() != UserBean.STATUS_NORMAL) { msgs.add("message", new ActionMessage("error.user_not_available")); break; } SiteBean site = super.getSiteByID(msgform.getSid()); if (site == null) { msgs.add("message", new ActionMessage("error.site_not_available")); break; } // 检查黑名单 if (isUserInBlackList(site, loginUser)) { msgs.add("message", new ActionMessage("error.user_in_blacklist")); break; } GuestBookBean msgbean = new GuestBookBean(); String content = super.autoFiltrate(site, msgform.getContent()); if (content.length() > MAX_GB_COUNT_LENGTH) content = content.substring(0, MAX_GB_COUNT_LENGTH); msgbean.setContent(super.filterScriptAndStyle(content)); msgbean.setClient(new ClientInfo(request, 0)); msgbean.setUser(loginUser); msgbean.setSiteId(site.getId()); try { GuestBookDAO.createMsg(msgbean); } catch (HibernateException e) { context().log("undelete diary failed.", e); msgs.add("message", new ActionMessage("error.database", e.getMessage())); } break; } if (!msgs.isEmpty()) { saveMessages(request, msgs); return mapping.findForward("pub"); } return makeForward(mapping.findForward("list"), msgform.getSid()); }