1 24 28 package org.jresearch.gossip.actions.admin; 29 30 import java.sql.SQLException ; 31 import java.util.ArrayList ; 32 import java.util.Iterator ; 33 34 import javax.servlet.http.HttpServletRequest ; 35 import javax.servlet.http.HttpServletResponse ; 36 import javax.servlet.http.HttpSession ; 37 38 import org.apache.struts.action.ActionForm; 39 import org.apache.struts.action.ActionForward; 40 import org.apache.struts.action.ActionMapping; 41 import org.apache.struts.util.MessageResources; 42 import org.jresearch.gossip.IConst; 43 import org.jresearch.gossip.actions.BaseAction; 44 import org.jresearch.gossip.am.ban.BanGuard; 45 import org.jresearch.gossip.beans.NamedValue; 46 import org.jresearch.gossip.beans.user.User; 47 import org.jresearch.gossip.configuration.Configurator; 48 import org.jresearch.gossip.constants.BanType; 49 import org.jresearch.gossip.dao.UserDAO; 50 import org.jresearch.gossip.exception.SystemException; 51 import org.jresearch.gossip.forms.SendAdminMailForm; 52 import org.jresearch.gossip.mail.MailMessage; 53 import org.jresearch.gossip.mail.MailQueue; 54 import org.jresearch.gossip.util.HtmlCodec; 55 import org.jresearch.gossip.util.MessageProcessor; 56 57 62 public class SendAdminMailAction extends BaseAction { 63 64 72 public ActionForward process(ActionMapping mapping, ActionForm form, 73 HttpServletRequest request, HttpServletResponse response) 74 throws SystemException { 75 MessageResources messages = getResources(request); 76 HttpSession session = request.getSession(); 77 SendAdminMailForm samForm = (SendAdminMailForm) form; 78 User user = (User) session.getAttribute(IConst.SESSION.USER_KEY); 79 UserDAO dao = UserDAO.getInstance(); 80 MessageProcessor mp = MessageProcessor.getInstance(); 81 String mess = mp.prepareMessage(HtmlCodec.encode(samForm.getText()), 0, 82 messages); 83 StringBuffer siteUrl = new StringBuffer (); 84 siteUrl.append(request.getServerName()); 85 siteUrl.append(":"); 86 siteUrl.append(request.getServerPort()); 87 siteUrl.append(request.getContextPath()); 88 siteUrl.append(Configurator.getInstance().get( 89 IConst.CONFIG.MODULE_PREFIX)); 90 siteUrl.append("/"); 91 94 Object [] messArgs = new Object [] { "", mp.nl2br(mess), 95 siteUrl.toString(), 96 Configurator.getInstance().get(IConst.CONFIG.SITE_NAME) }; 97 MailQueue queue = (MailQueue) session.getServletContext().getAttribute( 98 IConst.CONTEXT.MAIL_QUEUE); 99 try { 100 101 ArrayList userMails = dao.getUserEmails(); 102 Iterator it = userMails.iterator(); 103 BanGuard guard = BanGuard.getInstance(); 104 while (it.hasNext()) { 105 NamedValue nv = (NamedValue) it.next(); 106 107 if (!guard.checkBan(nv.getValue(), BanType.EMAIL) 108 && !user.getName().equals(nv.getName())) { 109 messArgs[0] = nv.getName(); 110 queue.push(new MailMessage(messages.getMessage( 111 "mails.ADMIN_MAIL", messArgs), 112 samForm.getSubject(), Configurator.getInstance() 113 .get(IConst.CONFIG.ADMINMAIL), user 114 .getName(), nv.getValue(), nv.getName())); 115 } 116 } 117 request.removeAttribute("sendAdminMailForm"); 118 log(request, "status.ADMIN_MAIL_SENT"); 119 setStatusMessage(request, "status.ADMIN_MAIL_SENT"); 120 } catch (SQLException sqle) { 121 getServlet().log("Connection.process", sqle); 122 } 123 return (mapping.getInputForward()); 124 } 125 } | Popular Tags |