Package org.jresearch.gossip.forms

Examples of org.jresearch.gossip.forms.MessageForm


    public ActionForward process(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws SystemException {
        HttpSession session = request.getSession();
        MessageResources messages = getResources(request);
        MessageForm messageForm = (MessageForm) form;
        User user = (User) session.getAttribute(IConst.SESSION.USER_KEY);
        ForumDAO dao = ForumDAO.getInstance();
        UserDAO userdao = UserDAO.getInstance();
        ActionErrors errors = new ActionErrors();
        StringBuffer forward = new StringBuffer();
        Configurator config = Configurator.getInstance();

        if ((user.getStatus() > 0)) {
            messageForm.setEmail(user.getInfo().getEmail());
            messageForm.setName(user.getName());
        } else { //validation if user is not registered yet

            if (messageForm.getName().trim().equals("")) {
                errors.add(ActionErrors.GLOBAL_ERROR, new ActionError(
                        "errors.ERR20"));
            }

            if (messageForm.getEmail().trim().equals("")) {
                errors.add(ActionErrors.GLOBAL_ERROR, new ActionError(
                        "errors.ERR19"));
            }
        }

        //    Report any errors we have discovered back to the original form
        if (!errors.isEmpty()) {
            saveErrors(request, errors);

            return (mapping.getInputForward());
        }

        try {

            boolean announce = false;
            boolean isUserMod = dao.checkMod(Integer.parseInt(messageForm
                    .getFid()), user);
            Forum currForum = dao.getForumInfo(Integer.parseInt(messageForm
                    .getFid()));

            //      check access rights if forum invisible
            if ((currForum.getLocked() == IConst.Forum.STATUS_INVISIBLE)
                    && (user.getStatus() < Integer.parseInt(Configurator
                            .getInstance().get(IConst.CONFIG.INVADER1)))) { return (mapping
                    .findForward(IConst.TOKEN.DENIED)); }

            //      check access rights if forum topics are locked
            if (((currForum.getLocked() == IConst.Forum.STATUS_TOPICS_LOCKED) && messageForm
                    .getTid().equals(""))
                    && (!isUserMod)) { return (mapping
                    .findForward(IConst.TOKEN.DENIED)); }

            // insert new thread if it is necessary
            if (messageForm.getTid().equals("")) {
                messageForm.setTid(dao.insertNewThread(messageForm.getFid()));

                announce = ((dao.isUserMod(user.getName()) || (user.getStatus() > 7)) && IConst.VALUES.TRUE
                        .equals(messageForm.getAnnounce()));
            }

            // check user access rights if current topic or completely forum is
            // locked
            if ((dao.getThreadInfo(Integer.parseInt(messageForm.getTid()))
                    .getLocked() == IConst.Topic.STATUS_LOCKED || currForum
                    .getLocked() == IConst.Forum.STATUS_COMPLETELY_LOCKED)
                    && (!isUserMod)) { return (mapping
                    .findForward(IConst.TOKEN.DENIED)); }

            // mark username for not registered users
            if (user.getStatus() == 0) {
                messageForm.setName("<" + messageForm.getName() + ">");
            }

            int mid = dao.addMessage(messageForm, request.getRemoteAddr(),
                    announce);
            //save attachment
            if (Configurator.getInstance().getBoolean(
                    IConst.CONFIG.ENABLE_FILE_UPLOAD)) {
                saveAttach(request, mid, ((FileUploadForm) messageForm)
                        .getFileData());
            }
            forward.append("/ShowMessage.do?fid=");
            forward.append(messageForm.getFid());
            forward.append("&tid=");
            forward.append(messageForm.getTid());
            forward.append("&mid=");
            forward.append(mid);

            log(request, "logs.LOG5", messageForm.getTid() + " fid="
                    + messageForm.getFid());

            //      e-mail all the subscribors of this thread...
            ArrayList subscrbe = dao.getSubscribersList(messageForm.getTid(),
                    messageForm.getName());

            if (subscrbe.size() > 0) {
                StringBuffer siteUrl = new StringBuffer();
                siteUrl.append(request.getServerName());
                siteUrl.append(":");
                siteUrl.append(request.getServerPort());
                siteUrl.append("/");
                siteUrl.append(request.getContextPath());
                siteUrl.append(config.get(IConst.CONFIG.MODULE_PREFIX));
                siteUrl.append("/");

                String tSubj = dao.getThreadSubject(messageForm.getTid());
                MessageProcessor mp = MessageProcessor.getInstance();
                String mess = mp.prepareMessage(HtmlCodec.encode(messageForm
                        .getText()), 0, messages);
                mess = mp.cleanup(mess);

                /*
                 * {0} - subsriber's login {1} - site url {2} - show message url
                 * {3} - topic title {4} - new message text {5} - new message
                 * sender {6} - site name
                 */
                Object[] messArgs = new Object[] { "", siteUrl.toString(),
                        forward.toString(), tSubj, mess,
                        HtmlCodec.encode(messageForm.getName()),
                        config.get(IConst.CONFIG.SITE_NAME) };
                MailQueue queue = (MailQueue) session.getServletContext()
                        .getAttribute(IConst.CONTEXT.MAIL_QUEUE);

                Iterator it = subscrbe.iterator();
                BanGuard guard = BanGuard.getInstance();
                while (it.hasNext()) {
                    Subscriber s = (Subscriber) it.next();
                    if (!guard.checkBan(s.getEmail(), BanType.EMAIL)) {
                        messArgs[0] = HtmlCodec.encode(s.getName());

                        queue.push(new MailMessage(messages.getMessage(
                                "mails.NEW_MESSAGE", messArgs), messages
                                .getMessage("mails.NEW_MESSAGE_SUBJ"), config
                                .get(IConst.CONFIG.ADMINMAIL), messages
                                .getMessage("mails.FORUM_ADMIN"), s.getEmail(),
                                s.getName()));
                    }
                }
            }

            //subscribe user to e-mail from this thread...
            if (IConst.VALUES.TRUE.equals(messageForm.getSubscribe())) {
                dao.subscribe(messageForm.getTid(), messageForm.getEmail(),
                        messageForm.getName());
            }

            session.removeAttribute(IConst.REQUEST.CURR_THREAD);

            if (user.getStatus() != UserStatus.GUEST) {

                // set(update) last visit date for this thread
                HashMap last_intime = (HashMap) session
                        .getAttribute(IConst.SESSION.LAST_INTIME);

                if (last_intime.containsKey(messageForm.getTid())) {
                    last_intime.remove(messageForm.getTid());
                }

                last_intime.put(messageForm.getTid(), new Date());
            }
        } catch (SQLException sqle) {
            getServlet().log("Connection.process", sqle);
            throw new SystemException(sqle);
        } catch (FileNotFoundException e) {
View Full Code Here


   */
  public ActionForward process(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws SystemException {
    HttpSession session = request.getSession();
    MessageForm messageForm = new MessageForm();
    ProcessMessageForm pmForm = (ProcessMessageForm) form;
    ForumDAO dao = ForumDAO.getInstance();
    User user = (User) session.getAttribute(IConst.SESSION.USER_KEY);
    try {
     
View Full Code Here

     */
    public ActionForward process(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response)
        throws SystemException {
        HttpSession session = request.getSession();
        MessageForm messageForm = (MessageForm) form;
        User user = (User) session.getAttribute(IConst.SESSION.USER_KEY);
        ForumDAO dao = ForumDAO.getInstance();

        try {
           

            boolean isUserMod = dao.checkMod(Integer.parseInt(
                        messageForm.getFid()), user);
            Forum currForum = dao.getForumInfo(Integer.parseInt(
                        messageForm.getFid()));

            //      check access rights if forum invisible
            if ((currForum.getLocked() == IConst.Forum.STATUS_INVISIBLE) &&
                    (user.getStatus() < Integer.parseInt(
                        Configurator.getInstance().get(IConst.CONFIG.INVADER1)))) {
                return (mapping.findForward(IConst.TOKEN.DENIED));
            }

            Topic currThread = dao.getThreadInfo(Integer.parseInt(
                        messageForm.getTid()));

            // check user access rights if current topic or completely forum is locked
            if (((currThread.getLocked() == IConst.Topic.STATUS_LOCKED) ||
                    (currForum.getLocked() == IConst.Forum.STATUS_COMPLETELY_LOCKED)) &&
                    (!isUserMod)) {
                return (mapping.findForward(IConst.TOKEN.DENIED));
            }

            Message mess = dao.getMessage(messageForm.getMid());
            session.removeAttribute(IConst.REQUEST.CURR_THREAD);

            if (mess == null) {
                return (new ActionForward("/ShowThread.do?fid=" +
                    messageForm.getFid() + "&tid=" + messageForm.getTid() +
                    "&block=" + messageForm.getBlock(), true));
            } else {
                // check user access rights
                if (dao.checkMod(Integer.parseInt(messageForm.getFid()), user) ||
                        (user.getName().equals(mess.getSender()) &&
                        (currThread.getLocked() == IConst.Topic.STATUS_UNLOCKED))) {
                    dao.updateMessage(messageForm);

                    //subscribe user to e-mail from this thread...
                    if (IConst.VALUES.TRUE.equals(messageForm.getSubscribe())) {
                        dao.subscribe(messageForm.getTid(),
                            user.getInfo().getEmail(), user.getName());
                    }

                    log(request, "logs.LOG28",
                        " mid=" + messageForm.getMid() + " tid=" +
                        messageForm.getTid() + " fid=" + messageForm.getFid());
                } else {
                    return (mapping.findForward(IConst.TOKEN.DENIED));
                }
            }
        } catch (SQLException sqle) {
            getServlet().log("Connection.process", sqle);
            throw new SystemException(sqle);
        }

        StringBuffer forward = new StringBuffer();
        forward.append("/ShowMessage.do?fid=");
        forward.append(messageForm.getFid());
        forward.append("&tid=");
        forward.append(messageForm.getTid());
        forward.append("&mid=");
        forward.append(messageForm.getMid());

        return (new ActionForward(forward.toString(), true));
    }
View Full Code Here

   */
  public ActionForward process(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws SystemException {
    HttpSession session = request.getSession();
    MessageForm messageForm = new MessageForm();
    ForumDAO dao = ForumDAO.getInstance();
    User user = (User) session.getAttribute(IConst.SESSION.USER_KEY);
    ProcessMessageForm pmForm = (ProcessMessageForm) form;
    try {
     
View Full Code Here

TOP

Related Classes of org.jresearch.gossip.forms.MessageForm

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.