working on forwarding mail
This commit is contained in:
@@ -16,6 +16,7 @@ import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -27,6 +28,7 @@ public class Rest extends HttpServlet {
|
||||
private static final Logger LOG = LoggerFactory.getLogger(Rest.class);
|
||||
private static final String LIST_DISABLE = "list/disable";
|
||||
private static final String LIST_EDITABLE = "list/editable";
|
||||
private static final String LIST_DETAIL = "list/detail";
|
||||
private static final String LIST_ENABLE = "list/enable";
|
||||
private static final String LIST_HIDE = "list/hide";
|
||||
private static final String LIST_MEMBERS = "list/members";
|
||||
@@ -104,6 +106,7 @@ public class Rest extends HttpServlet {
|
||||
break;
|
||||
case LIST_SUBSCRIBABLE:
|
||||
json.put("lists", MailingList.subscribable(user).stream().map(MailingList::minimalMap).toList());
|
||||
break;
|
||||
default:
|
||||
json.put(ERROR,t("No handler for path '{}'!",path));
|
||||
break;
|
||||
@@ -139,6 +142,9 @@ public class Rest extends HttpServlet {
|
||||
var userEmail = req.getParameter(EMAIL);
|
||||
var permissions = req.getParameter(PERMISSIONS);
|
||||
switch (path) {
|
||||
case LIST_DETAIL:
|
||||
json.putAll(listDetail(listEmail,user));
|
||||
break;
|
||||
case LIST_DISABLE:
|
||||
json.putAll(enableList(listEmail,user,false));
|
||||
break;
|
||||
@@ -183,6 +189,14 @@ public class Rest extends HttpServlet {
|
||||
}
|
||||
}
|
||||
|
||||
private Map listDetail(String listEmail, User user) {
|
||||
var ml = MailingList.load(listEmail);
|
||||
if (ml == null) return Map.of(ERROR,t("Mailinglist {} unknown",listEmail));
|
||||
var map = new HashMap<>();
|
||||
if (ml.hasState(MailingList.STATE_FORWARD_FROM)) map.put("forward_from",true);
|
||||
return map;
|
||||
}
|
||||
|
||||
private Map<String, Object> listMembers(String listEmail, User user) {
|
||||
if (listEmail == null || listEmail.isBlank()) return Map.of(ERROR,"no list email provided!");
|
||||
if (user.hashPermission(User.PERMISSION_ADMIN) || ListMember.listsOwnedBy(user).contains(listEmail)) {
|
||||
|
||||
Reference in New Issue
Block a user