Mercurial Hosting > nabble
view src/nabble/view/web/mailing_list/Subscribe.java @ 19:18cf4872fd7f
remove anonymous posting
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 29 May 2020 22:58:25 -0600 |
parents | 7ecd1a4ef557 |
children |
line wrap: on
line source
package nabble.view.web.mailing_list; import fschmidt.util.mail.Mail; import fschmidt.util.servlet.ServletUtils; import nabble.model.Init; import nabble.model.ListServer; import nabble.model.MailingList; import nabble.model.ModelHome; import nabble.model.Executors; import nabble.model.Node; import nabble.model.User; import nabble.view.lib.Jtp; import nabble.view.lib.SubscribeDefaultsMail; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.concurrent.TimeUnit; public final class Subscribe extends HttpServlet { private static final Logger logger = LoggerFactory.getLogger(Subscribe.class); private final static long secondsUntilDeliveryOffMail = Init.get("secondsUntilDeliveryOffMail",20*60); // why so long? protected void service(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { User user = Jtp.getUser(request); if (user == null) { Jtp.login("You must login to be able to subscribe to a list.",request,response); return; } Node forum = Jtp.getSiteNotNull(request).getNode(Long.parseLong(request.getParameter("forum"))); MailingList mailingList = forum.getAssociatedMailingList(); Mail userSubscribeMail = mailingList.subscribeMail(user); ModelHome.send(userSubscribeMail); logger.info("subscription request from "+user.getEmail()+" to "+mailingList.getListAddress()); if (mailingList.getListServer().needsDefaults() && mailingList.getListServer() != ListServer.google) { String url = ServletUtils.getContextURL(request) + "/mailing_list/SubscribeDefaults.jtp?forum="+forum.getId()+"&k="+mailingList.getPassword(user); final Mail mail = SubscribeDefaultsMail.newMail(user.getEmail(), mailingList, url); Executors.schedule( new Runnable(){public void run(){ ModelHome.send(mail); }}, secondsUntilDeliveryOffMail, TimeUnit.SECONDS ); } response.sendRedirect("Subscribe2.jtp?forum="+forum.getId()); } }