import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
-import java.util.Vector;
-import java.util.Collections;
import mir.config.MirPropertiesConfiguration;
import mir.generator.Generator;
import mircoders.global.CacheKey;
import mircoders.global.MirGlobal;
import mircoders.module.ModuleContent;
-import mircoders.storage.DatabaseContent;
import org.apache.commons.net.smtp.SMTPClient;
import org.apache.commons.net.smtp.SMTPReply;
if (articleID == null){
throw new SessionExc("makeInitialResponse: article id not set!");
}
- else {
- aSession.setAttribute("email.aid",articleID);
- aResponse.setResponseValue("errors", null);
-
- String mail_language = configuration.getString("Mir.Login.DefaultLanguage", "en");
- aResponse.setResponseValue("mail_language",mail_language);
- aResponse.setResponseValue("mail_to","");
- aResponse.setResponseValue("mail_from","");
- aResponse.setResponseValue("mail_from_name","");
- aResponse.setResponseValue("mail_comment","");
- aResponse.setResponseGenerator(configuration.getString("Localizer.OpenSession.email.PrepareTemplate"));
+ EntityContent article;
+ try {
+ article = (EntityContent) (new ModuleContent()).getById(articleID);
+ }
+ catch (Throwable t) {
+ throw new SessionExc("Unknown article: " + articleID);
+ }
+ if (!MirGlobal.localizer().openPostings().allowArticlePublication(article)) {
}
+
+
+
+ aSession.setAttribute("email.aid",articleID);
+ aResponse.setResponseValue("errors", null);
+
+ String mail_language = configuration.getString("Mir.Login.DefaultLanguage", "en");
+ aResponse.setResponseValue("mail_language",mail_language);
+ aResponse.setResponseValue("mail_to","");
+ aResponse.setResponseValue("mail_from","");
+ aResponse.setResponseValue("mail_from_name","");
+ aResponse.setResponseValue("mail_comment","");
+
+ aResponse.setResponseGenerator(configuration.getString("Localizer.OpenSession.email.PrepareTemplate"));
}
protected boolean shouldSendMail(Request aRequest, Session aSession, Response aResponse,List aValidationErrors) throws SessionExc, SessionFailure{
|| to.indexOf(',') != -1) {
throw new SessionExc("Invalid to address"); // we might want to see this in a log, so it is not a validation error
}
- else return true; // go for it
- }
- else{
- return false; //validation failed, but not in a potentially abusive way
+ return true; // go for it
}
+ return false; //validation failed, but not in a potentially abusive way
}
String emailAnArticleTemplate = configuration.getString("Localizer.OpenSession.email.MailTemplate");
- Generator generator = MirGlobal.localizer().generators().makeOpenPostingGeneratorLibrary().makeGenerator(emailAnArticleTemplate);
+ Generator generator =
+ MirGlobal.localizer().generators().makeOpenPostingGeneratorLibrary().
+ makeGenerator(emailAnArticleTemplate, null);
StringWriter theEmailStringWriter = new StringWriter();
PrintWriter theEmailPrintWriter = new PrintWriter(theEmailStringWriter);
protected String getExtraEmailHeaders(Request aRequest,String to,String from) throws SessionExc {
- String headers = "To: " + to + "\nReply-To: "+ from+"\n";;
+ String headers = "To: " + to + "\nReply-To: "+ from+"\n";
if (configuration.getString("Localizer.OpenSession.email.includeSenderIP","no").equals("yes"))
headers= headers+"X-Originating-IP: "+ ((HTTPRequestAdapter)aRequest).getRequest().getRemoteAddr() + "\n";
// mission accomplished??
if (! trueIfItWorked)
throw new SessionExc(client.getReplyString());
- else
- return trueIfItWorked;
+ return trueIfItWorked;
}
catch(IOException e) {
if(client.isConnected()) {
protected void subsequentRequest(Request aRequest, Session aSession, Response aResponse) throws SessionExc, SessionFailure {
- List validationErrors = new Vector();
+ List validationErrors = new ArrayList();
if (shouldSendMail(aRequest,aSession,aResponse,validationErrors)){
sendMail(aRequest,aSession,aResponse);