confirmation mail now template based.

This commit is contained in:
2022-04-23 16:56:36 +02:00
parent 5e1bc10855
commit 19c20816f8
9 changed files with 70 additions and 28 deletions

View File

@@ -1,6 +1,7 @@
package de.srsoftware.widerhall.web;
import de.srsoftware.widerhall.Configuration;
import org.stringtemplate.v4.ST;
import org.stringtemplate.v4.STGroup;
import org.stringtemplate.v4.STRawGroupDir;
@@ -8,7 +9,6 @@ import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.Map;
@@ -24,6 +24,10 @@ public abstract class TemplateServlet extends HttpServlet {
loadTemplates();
}
protected ST getTemplate(String name){
return templates.getInstanceOf(name);
}
protected String loadFile(String filename, HttpServletResponse resp) {
var path = String.join(File.separator,baseDir,"static",filename);
var file = new File(path);

View File

@@ -142,8 +142,12 @@ public class Web extends TemplateServlet {
try {
var token = req.getParameter(TOKEN);
if (token== null || token.isBlank()) return t("Invalid or missing token!");
var user = ListMember.confirm(token);
if (user != null) return loadTemplate(INDEX,Map.of(USER,user.safeMap(),NOTES,"Confirmed list subscription!"),resp);
var listMember = ListMember.confirm(token);
if (listMember != null) {
listMember.sendConfirmationMail(getTemplate("confirmation_mail"));
return loadTemplate(INDEX,Map.of(USER,listMember.user().safeMap(),NOTES,"Confirmed list subscription!"),resp);
}
return t("Unknown user or token");
} catch (Exception e) {
LOG.debug("Failed to confirm list membership:",e);
@@ -517,7 +521,7 @@ public class Web extends TemplateServlet {
}
try {
list.requestSubscription(user,skipConfirmation);
list.requestSubscription(user,skipConfirmation,getTemplate("subscribe_mail"));
if (skipConfirmation) {
data.put(NOTES, t("Successfully subscribed '{}' to '{}'.", user.email(), list.email()));
} else {