view src/nabble/view/web/mailing_list/SubscribeDefaults.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 nabble.model.ListServer;
import nabble.model.MailingList;
import nabble.model.ModelHome;
import nabble.model.Node;
import nabble.model.User;
import nabble.view.lib.Jtp;
import nabble.view.lib.Shared;
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.io.PrintWriter;


public final class SubscribeDefaults extends HttpServlet {

	private static final Logger logger = LoggerFactory.getLogger(SubscribeDefaults.class);

	protected void service(HttpServletRequest request,HttpServletResponse response)
		throws ServletException, IOException
	{
		PrintWriter out = response.getWriter();
		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();
		ListServer listServer = mailingList.getListServer();
		if( "set".equals( request.getParameter("Action") ) ) {
			Mail defaultsMail = mailingList.defaultsMail(user, request.getParameter("k"));
			ModelHome.send(defaultsMail);
			logger.info("set nomail request from "+user.getEmail()
					+" to "+mailingList.getListAddress());
			response.sendRedirect("SubscribeDefaults.jtp?forum="+forum.getId()+"&done=y");
			return;
		}
		boolean done = "y".equals(request.getParameter("done"));
		
		out.print( "\n<html>\n<head>\n	" );
 Shared.title(request,response,"Subscribe to mailing list"); 
		out.print( "\n</head>\n<body>\n	" );
 Shared.minHeader(request, response, forum); 
		out.print( "\n	<h1>Mailing list subscription</h1>\n	" );

			if (done) {
				
		out.print( "\n<p>\n	The request to turn off list mail delivery from <strong>" );
		out.print( (mailingList.getListAddress()) );
		out.print( "</strong> to your email address (" );
		out.print( (user.getEmail()) );
		out.print( ") has been submitted. You should not receive any more messages from this mailing list at this email address.\n</p>\n<br /><br />\n<p>\n	&#171; <a href=\"" );
		out.print( (Jtp.path(forum)) );
		out.print( "\">Return to forum</a>\n</p>\n" );

			} else if(listServer.supportsDeliveryOff()){
				
		out.print( "\n<form method=post action=\"" );
		out.print( (response.encodeURL("SubscribeDefaults.jtp")) );
		out.print( "\">\n<input type=hidden name=\"Action\" value=\"set\">\n<input type=hidden name=\"forum\" value=\"" );
		out.print( (forum.getId()) );
		out.print( "\">\n<input type=hidden name=\"k\" value=\"" );
		out.print( (Jtp.hideNull(request.getParameter("k"))) );
		out.print( "\">\n<p>\n	This will submit a request to turn off mail delivery from the mailing list <strong>" );
		out.print( (mailingList.getListAddress()) );
		out.print( "</strong>.\n</p>\n\n<p>\n	<strong>NOTE: </strong> Submitting this request will only work after your subscription to the mailing list\nhas been approved. If your subscription is not yet approved, you will receive an error message via email. In this case, please submit the request again after your subscription is approved.\n</p>\n<br /><br />\n<input type=submit value=\"Turn Off Email Delivery\">\n</form>\n" );

			} else {
				
		out.print( "\n	<strong>We're sorry!</strong> Turning off email delivery is not supported by <strong>" );
		out.print( (mailingList.getListAddress()) );
		out.print( "</strong>. However, you can use the Unsubscribe option offered by the mailing list to stop receiving emails from them.\n" );

			}
			
		out.print( "\n" );
 Shared.footer(request,response); 
		out.print( "\n" );
 Shared.analytics(request,response); 
		out.print( "\n</body>\n</html>\n" );

	}
}