Merge branch 'feature/fallback_sender' into feature/notifications
This commit is contained in:
@@ -4,7 +4,6 @@ package de.srsoftware.umbrella.messagebus;
|
|||||||
import de.srsoftware.umbrella.messagebus.events.Event;
|
import de.srsoftware.umbrella.messagebus.events.Event;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class MessageBus {
|
public class MessageBus {
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ public class Constants {
|
|||||||
public static final String AUTH = "mail.smtp.auth";
|
public static final String AUTH = "mail.smtp.auth";
|
||||||
|
|
||||||
public static final String CONFIG_DB = "umbrella.modules.message.database";
|
public static final String CONFIG_DB = "umbrella.modules.message.database";
|
||||||
|
public static final String CONFIG_SMTP_FROM = "umbrella.modules.message.smtp.from";
|
||||||
public static final String CONFIG_SMTP_HOST = "umbrella.modules.message.smtp.host";
|
public static final String CONFIG_SMTP_HOST = "umbrella.modules.message.smtp.host";
|
||||||
public static final String CONFIG_SMTP_PASS = "umbrella.modules.message.smtp.pass";
|
public static final String CONFIG_SMTP_PASS = "umbrella.modules.message.smtp.pass";
|
||||||
public static final String CONFIG_SMTP_PORT = "umbrella.modules.message.smtp.port";
|
public static final String CONFIG_SMTP_PORT = "umbrella.modules.message.smtp.port";
|
||||||
|
|||||||
@@ -212,6 +212,7 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener
|
|||||||
LOG.log(INFO,"Running {0}…",scheduledHour == null ? "instantly" : "scheduled at "+scheduledHour);
|
LOG.log(INFO,"Running {0}…",scheduledHour == null ? "instantly" : "scheduled at "+scheduledHour);
|
||||||
|
|
||||||
var dueRecipients = queue.getReceivers().map(this::toUmbrellaUser).filter(uu -> sendAt(uu,scheduledHour)).toList();
|
var dueRecipients = queue.getReceivers().map(this::toUmbrellaUser).filter(uu -> sendAt(uu,scheduledHour)).toList();
|
||||||
|
var fallbackSender = new User("Umbrella",new EmailAddress(from),null);
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date();
|
||||||
|
|
||||||
@@ -220,7 +221,7 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener
|
|||||||
LOG.log(DEBUG,"Debug address is set to {0}, ignoring mail to {1}",debugAddress,receiver);
|
LOG.log(DEBUG,"Debug address is set to {0}, ignoring mail to {1}",debugAddress,receiver);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
var combined = new CombinedMessage(t("Collected messages"),receiver);
|
var combined = new CombinedMessage(t("Collected messages"),receiver, fallbackSender);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var envelopes = queue.getEnvelopesFor(receiver);
|
var envelopes = queue.getEnvelopesFor(receiver);
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package de.srsoftware.umbrella.message.model;
|
|||||||
|
|
||||||
import static de.srsoftware.umbrella.core.ModuleRegistry.translator;
|
import static de.srsoftware.umbrella.core.ModuleRegistry.translator;
|
||||||
import static de.srsoftware.umbrella.core.Util.dateTimeOf;
|
import static de.srsoftware.umbrella.core.Util.dateTimeOf;
|
||||||
import static de.srsoftware.umbrella.core.model.Translatable.t;
|
|
||||||
import static java.lang.System.Logger.Level.DEBUG;
|
import static java.lang.System.Logger.Level.DEBUG;
|
||||||
import static java.lang.System.Logger.Level.TRACE;
|
import static java.lang.System.Logger.Level.TRACE;
|
||||||
import static java.text.MessageFormat.format;
|
import static java.text.MessageFormat.format;
|
||||||
@@ -18,15 +17,17 @@ public class CombinedMessage {
|
|||||||
private final StringBuilder combinedBody = new StringBuilder();
|
private final StringBuilder combinedBody = new StringBuilder();
|
||||||
private final User receiver;
|
private final User receiver;
|
||||||
private final String lang;
|
private final String lang;
|
||||||
|
private final User fallbackSender;
|
||||||
private String combinedSubject = null;
|
private String combinedSubject = null;
|
||||||
private final List<Message<?>> mergedMessages = new ArrayList<>();
|
private final List<Message<?>> mergedMessages = new ArrayList<>();
|
||||||
private final Translatable subjectForCombinedMessage;
|
private final Translatable subjectForCombinedMessage;
|
||||||
private UmbrellaUser sender = null;
|
private User sender = null;
|
||||||
public static final String SEPARATOR = "\n\n━━━━━━━━━━━━━━━━━━━━━\n\n";
|
public static final String SEPARATOR = "\n\n━━━━━━━━━━━━━━━━━━━━━\n\n";
|
||||||
|
|
||||||
public CombinedMessage(Translatable subjectForCombinedMessage, User receiver){
|
public CombinedMessage(Translatable subjectForCombinedMessage, User receiver, User fallbackSender){
|
||||||
LOG.log(DEBUG,"Creating combined message for {0}…",receiver);
|
LOG.log(DEBUG,"Creating combined message for {0}…",receiver);
|
||||||
this.subjectForCombinedMessage = subjectForCombinedMessage;
|
this.subjectForCombinedMessage = subjectForCombinedMessage;
|
||||||
|
this.fallbackSender = fallbackSender;
|
||||||
this.receiver = receiver;
|
this.receiver = receiver;
|
||||||
this.lang = receiver.language();
|
this.lang = receiver.language();
|
||||||
}
|
}
|
||||||
@@ -61,6 +62,7 @@ public class CombinedMessage {
|
|||||||
combinedSubject = subjectForCombinedMessage.translate(lang);
|
combinedSubject = subjectForCombinedMessage.translate(lang);
|
||||||
// no break here, we need to append the subject and content
|
// no break here, we need to append the subject and content
|
||||||
default:
|
default:
|
||||||
|
if (!sender.equals(message.sender())) sender = fallbackSender;
|
||||||
combinedBody.append(SEPARATOR).append("# ").append(message.sender()).append(" @ ").append(dateTimeOf(message.utcTime())).append("\n→ ").append(subject).append(":\n\n");
|
combinedBody.append(SEPARATOR).append("# ").append(message.sender()).append(" @ ").append(dateTimeOf(message.utcTime())).append("\n→ ").append(subject).append(":\n\n");
|
||||||
combinedBody.append(body);
|
combinedBody.append(body);
|
||||||
}
|
}
|
||||||
@@ -76,7 +78,7 @@ public class CombinedMessage {
|
|||||||
return receiver;
|
return receiver;
|
||||||
}
|
}
|
||||||
|
|
||||||
public UmbrellaUser sender() {
|
public User sender() {
|
||||||
return sender;
|
return sender;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import de.srsoftware.umbrella.user.model.DbUser;
|
|||||||
import de.srsoftware.umbrella.user.model.Password;
|
import de.srsoftware.umbrella.user.model.Password;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
public interface UserDb {
|
public interface UserDb {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user