1 package org.nemesis.forum.webapp.admin.action; 2 3 import javax.servlet.http.HttpServletRequest ; 4 import javax.servlet.http.HttpServletResponse ; 5 6 import org.apache.commons.beanutils.PropertyUtils; 7 import org.apache.commons.logging.Log; 8 import org.apache.commons.logging.LogFactory; 9 import org.apache.struts.action.ActionError; 10 import org.apache.struts.action.ActionErrors; 11 import org.apache.struts.action.ActionForm; 12 import org.apache.struts.action.ActionForward; 13 import org.apache.struts.action.ActionMapping; 14 import org.nemesis.forum.Forum; 15 import org.nemesis.forum.ForumFactory; 16 import org.nemesis.forum.Message; 17 import org.nemesis.forum.exception.UnauthorizedException; 18 import org.nemesis.forum.webapp.admin.bean.MessageBean; 19 20 25 public class EditMessageAction extends BaseAction { 26 27 static protected Log log = LogFactory.getLog(EditMessageAction.class); 28 29 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { 30 31 checkUser(request); 33 34 35 ActionErrors errors = new ActionErrors(); 36 37 if (isCancelled(request)) { 39 return (mapping.findForward("cancel")); 40 } 41 42 try { 43 44 ForumFactory forumFactory = ForumFactory.getInstance(getAuthToken(request)); 45 Forum forum = forumFactory.getForum(Integer.parseInt(request.getParameter("id"))); 46 checkPermission(request, OperationConstants.EDIT_MESSAGE,forum); 48 49 50 if (request.getParameter("messageBean.subject") == null) { 52 MessageBean mb = new MessageBean(); 53 Message m =forum.getThread(Integer.parseInt(request.getParameter("threadID"))).getMessage(Integer.parseInt(request.getParameter("messageID"))); 54 55 56 mb.setForumID( Integer.parseInt(request.getParameter("id"))); 57 mb.setThreadID( Integer.parseInt(request.getParameter("threadID"))); 58 mb.setMessageID( m.getID()); 59 mb.setSubject( m.getSubject()); 60 mb.setContent( m.getBody()); 61 62 PropertyUtils.setProperty(form, "messageBean", mb); 63 return mapping.findForward("view"); 64 } 65 66 MessageBean mb = (MessageBean) PropertyUtils.getSimpleProperty(form, "messageBean"); 68 Message m =forum.getThread(mb.getThreadID()).getMessage(mb.getMessageID()); 69 m.setSubject(mb.getSubject()); 70 m.setBody(mb.getContent()); 71 72 73 } catch (NumberFormatException aee) { 74 errors.add("general", new ActionError("editMessage.unauthorized")); 75 76 } catch (UnauthorizedException aee) { 77 errors.add("general", new ActionError("editMessage.unauthorized")); 78 return mapping.findForward("view"); 79 80 } catch (Exception e) { 81 String eid = this.getClass().getName() + "_" + System.currentTimeMillis(); 82 log.error("eid:" + eid + "\nsessionID" + request.getSession().getId(), e); 83 errors.add("general", new ActionError("error.general", "erreur id:" + eid)); 84 } 85 86 if (!errors.isEmpty()) { 87 saveErrors(request, errors); 88 return mapping.findForward("cancel"); 89 } 90 91 return mapping.findForward("success"); 92 } 93 94 } | Popular Tags |