restructuring, working on password reset email
next steps: - create reset url and add it to the translation fill map - implement message translation - implement otp validation and login
This commit is contained in:
@@ -4,17 +4,15 @@ package de.srsoftware.umbrella.message;
|
||||
import static de.srsoftware.tools.PathHandler.CONTENT_TYPE;
|
||||
import static de.srsoftware.umbrella.core.Constants.*;
|
||||
import static de.srsoftware.umbrella.message.Constants.*;
|
||||
import static de.srsoftware.umbrella.user.Constants.PASS;
|
||||
import static java.lang.System.Logger.Level.*;
|
||||
|
||||
import de.srsoftware.configuration.Configuration;
|
||||
import de.srsoftware.umbrella.core.UmbrellaException;
|
||||
import de.srsoftware.umbrella.core.api.Translator;
|
||||
import de.srsoftware.umbrella.core.model.UmbrellaUser;
|
||||
import de.srsoftware.umbrella.message.model.CombinedMessage;
|
||||
import de.srsoftware.umbrella.message.model.Envelope;
|
||||
import de.srsoftware.umbrella.message.model.PostBox;
|
||||
import de.srsoftware.umbrella.user.model.UmbrellaUser;
|
||||
import de.srsoftware.umbrella.user.model.User;
|
||||
import jakarta.activation.DataHandler;
|
||||
import jakarta.mail.Message;
|
||||
import jakarta.mail.MessagingException;
|
||||
@@ -31,7 +29,7 @@ import java.util.function.Function;
|
||||
public class MessageSystem implements PostBox {
|
||||
public static final System.Logger LOG = System.getLogger(MessageSystem.class.getSimpleName());
|
||||
private final Timer timer = new Timer();
|
||||
private record Receiver(User user, de.srsoftware.umbrella.message.model.Message message){}
|
||||
private record Receiver(UmbrellaUser user, de.srsoftware.umbrella.message.model.Message message){}
|
||||
|
||||
private class SubmissionTask extends TimerTask{
|
||||
|
||||
@@ -98,11 +96,11 @@ public class MessageSystem implements PostBox {
|
||||
private synchronized void processMessages(Integer scheduledHour) {
|
||||
LOG.log(INFO,"Running {0}…",scheduledHour == null ? "instantly" : "scheduled at "+scheduledHour);
|
||||
var queue = new ArrayList<>(this.queue);
|
||||
var dueRecipients = new ArrayList<User>();
|
||||
List<User> recipients = queue.stream().map(Envelope::receivers).flatMap(Set::stream).filter(Objects::nonNull).distinct().toList();
|
||||
var dueRecipients = new ArrayList<UmbrellaUser>();
|
||||
List<UmbrellaUser> recipients = queue.stream().map(Envelope::receivers).flatMap(Set::stream).filter(Objects::nonNull).distinct().toList();
|
||||
|
||||
{ // for known users: get notification preferences, fallback to _immediately_ for unknown users
|
||||
for (User recv : recipients) {
|
||||
for (UmbrellaUser recv : recipients) {
|
||||
if (recv instanceof UmbrellaUser uu) {
|
||||
try {
|
||||
if (!db.getSettings(uu).sendAt(scheduledHour)) continue;
|
||||
@@ -156,17 +154,17 @@ public class MessageSystem implements PostBox {
|
||||
}
|
||||
|
||||
|
||||
private void send(CombinedMessage message, User receiver, Date date) throws MessagingException {
|
||||
private void send(CombinedMessage message, UmbrellaUser receiver, Date date) throws MessagingException {
|
||||
LOG.log(TRACE,"Sending combined message to {0}…",receiver);
|
||||
session = session();
|
||||
MimeMessage msg = new MimeMessage(session);
|
||||
msg.addHeader(CONTENT_TYPE, "text/markdown; charset=UTF-8");
|
||||
msg.addHeader("format", "flowed");
|
||||
msg.addHeader("Content-Transfer-Encoding", "8bit");
|
||||
msg.setFrom(message.sender().email());
|
||||
msg.setFrom(message.sender().email().toString());
|
||||
msg.setSubject(message.subject(), UTF8);
|
||||
msg.setSentDate(date);
|
||||
var toEmail = debugAddress != null ? debugAddress : receiver.email();
|
||||
var toEmail = debugAddress != null ? debugAddress : receiver.email().toString();
|
||||
msg.setRecipients(Message.RecipientType.TO, toEmail);
|
||||
|
||||
if (message.attachments().isEmpty()){
|
||||
|
||||
Reference in New Issue
Block a user