This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit 3de5f775ee4e260f34ed77f8d3e3f53d2f766825 Author: jcouteau <couteau@codelutin.com> Date: Wed Jun 3 08:47:37 2020 +0200 fixes #10750 : réponses et transfert sur des domaines protégés doit être envoyés depuis l'adresse configurée du dossier --- .../faxtomail/FaxToMailConfiguration.java | 4 +++ .../faxtomail/FaxToMailConfigurationOption.java | 7 ++++ .../i18n/faxtomail-persistence_fr_FR.properties | 1 + .../demande/actions/OpenForwardFormAction.java | 6 ++++ .../demande/actions/OpenReplyAllFormAction.java | 8 ++--- .../demande/actions/OpenReplyFormAction.java | 8 ++--- .../actions/SaveAndOpenForwardFormAction.java | 6 ++++ .../actions/SaveAndOpenReplyAllFormAction.java | 8 ++--- .../actions/SaveAndOpenReplyFormAction.java | 12 ++++--- .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 39 +++++++++++++++++----- 10 files changed, 75 insertions(+), 24 deletions(-) diff --git a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java index 2867c58a..99aeff31 100644 --- a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java +++ b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java @@ -447,4 +447,8 @@ public class FaxToMailConfiguration extends ApplicationConfiguration { public String getImageMagickLocation() { return applicationConfig.getOption(FaxToMailConfigurationOption.IMAGEMAGICK_LOCATION.getKey()); } + + public String getProtectedEmailDomains() { + return applicationConfig.getOption(FaxToMailConfigurationOption.PROTECTED_EMAIL_DOMAINS.getKey()); + } } diff --git a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java index 4891d257..fffa0c51 100644 --- a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java +++ b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java @@ -375,6 +375,13 @@ defaults.put("Table.alternateRowColor", new Color(217, 217, 217)); n("faxtomail.config.option.imageMagickLocation.description"), "magick", String.class + ), + + PROTECTED_EMAIL_DOMAINS( + "faxtomail.protectedEmailDomains", + n("faxtomail.config.option.protectedEmailDomains.description"), + " ", + String.class ); /** Configuration key. */ diff --git a/faxtomail-persistence/src/main/resources/i18n/faxtomail-persistence_fr_FR.properties b/faxtomail-persistence/src/main/resources/i18n/faxtomail-persistence_fr_FR.properties index d43b1a73..c6b2fd0e 100644 --- a/faxtomail-persistence/src/main/resources/i18n/faxtomail-persistence_fr_FR.properties +++ b/faxtomail-persistence/src/main/resources/i18n/faxtomail-persistence_fr_FR.properties @@ -10,6 +10,7 @@ faxtomail.config.option.imageMagickLocation.description= faxtomail.config.option.inceptionYear.description= faxtomail.config.option.launch.mode.description= faxtomail.config.option.organizationName.description= +faxtomail.config.option.protectedEmailDomains.description= faxtomail.config.option.site.url.description= faxtomail.config.option.startActionFile.description= faxtomail.config.option.tmp.directory.description= diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenForwardFormAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenForwardFormAction.java index a375e091..fce77d83 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenForwardFormAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenForwardFormAction.java @@ -35,6 +35,8 @@ import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUIModel; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUI; import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUIModel; +import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; +import jaxx.runtime.JAXXUtil; import org.apache.commons.lang3.StringUtils; import javax.swing.JFrame; @@ -80,6 +82,10 @@ public class OpenForwardFormAction extends AbstractFaxToMailAction<DemandeListUI model.setForward(true); model.setOriginalDemand(demand); + + String sender = JAXXUtil.getStringValue(demand.getSender()); + FaxToMailUIUtil.setFromOnReply(demand, model, sender, getConfig()); + frameContent.getHandler().addReferences(); } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenReplyAllFormAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenReplyAllFormAction.java index 3fa24b94..c4bd908e 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenReplyAllFormAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenReplyAllFormAction.java @@ -37,6 +37,7 @@ import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUIModel; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUI; import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUIModel; +import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; import jaxx.runtime.JAXXUtil; import org.apache.commons.lang3.StringUtils; @@ -86,14 +87,13 @@ public class OpenReplyAllFormAction extends AbstractFaxToMailAction<DemandeListU String sender = JAXXUtil.getStringValue(demand.getSender()); if (demand.isFax()) { MailFolder selectedFolder = getModel().getSelectedFolder(); - sender = FaxToMailServiceUtils.addFaxDomainToFaxNumber(sender, selectedFolder); - - String from = FaxToMailServiceUtils.addFaxDomainToFaxNumber(FaxToMailServiceUtils.getFaxFromNumber(selectedFolder), selectedFolder); - model.setFrom(from); } model.setTo(sender); model.setCc(demand.getCcRecipients()); + + FaxToMailUIUtil.setFromOnReply(demand, model, sender, getConfig()); + frameContent.getHandler().addReferences(); } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenReplyFormAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenReplyFormAction.java index fd433160..80f1eb07 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenReplyFormAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/OpenReplyFormAction.java @@ -37,6 +37,7 @@ import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUIModel; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUI; import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUIModel; +import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; import jaxx.runtime.JAXXUtil; import org.apache.commons.lang3.StringUtils; @@ -87,13 +88,12 @@ public class OpenReplyFormAction extends AbstractFaxToMailAction<DemandeListUIMo String sender = JAXXUtil.getStringValue(demand.getSender()); if (demand.isFax()) { MailFolder selectedFolder = getModel().getSelectedFolder(); - sender = FaxToMailServiceUtils.addFaxDomainToFaxNumber(sender, selectedFolder); - - String from = FaxToMailServiceUtils.addFaxDomainToFaxNumber(FaxToMailServiceUtils.getFaxFromNumber(selectedFolder), selectedFolder); - model.setFrom(from); } model.setTo(sender); + + FaxToMailUIUtil.setFromOnReply(demand, model, sender, getConfig()); + frameContent.getHandler().addReferences(); } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenForwardFormAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenForwardFormAction.java index 939d5b53..d6a5f59d 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenForwardFormAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenForwardFormAction.java @@ -30,6 +30,8 @@ import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandesUIHandler; import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUI; import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUIModel; +import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; +import jaxx.runtime.JAXXUtil; import java.awt.Dimension; @@ -71,6 +73,10 @@ public class SaveAndOpenForwardFormAction extends SaveAndOpenModalFrameAction<Re model.setSigning(signingForDomain); model.setForward(true); model.setOriginalDemand(currentDemand); + + String sender = JAXXUtil.getStringValue(currentDemand.getSender()); + FaxToMailUIUtil.setFromOnReply(currentDemand, model, sender, getConfig()); + frameContent.getHandler().addReferences(); } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenReplyAllFormAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenReplyAllFormAction.java index fb0967f8..0da2810e 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenReplyAllFormAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenReplyAllFormAction.java @@ -32,6 +32,7 @@ import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandesUIHandler; import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUI; import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUIModel; +import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; import jaxx.runtime.JAXXUtil; import java.awt.*; @@ -79,14 +80,13 @@ public class SaveAndOpenReplyAllFormAction extends SaveAndOpenModalFrameAction<R String sender = JAXXUtil.getStringValue(currentDemand.getSender()); if (currentDemand.isFax()) { MailFolder folder = currentDemand.getMailFolder(); - sender = FaxToMailServiceUtils.addFaxDomainToFaxNumber(sender, folder); - - String from = FaxToMailServiceUtils.addFaxDomainToFaxNumber(FaxToMailServiceUtils.getFaxFromNumber(folder), folder); - model.setFrom(from); } model.setTo(sender); model.setCc(currentDemand.getCcRecipients()); + + FaxToMailUIUtil.setFromOnReply(currentDemand, model, sender, getConfig()); + frameContent.getHandler().addReferences(); } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenReplyFormAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenReplyFormAction.java index b29d2a9c..e265fcd6 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenReplyFormAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/actions/SaveAndOpenReplyFormAction.java @@ -32,9 +32,14 @@ import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandesUIHandler; import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUI; import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUIModel; +import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; +import com.google.common.collect.Iterables; import jaxx.runtime.JAXXUtil; import java.awt.Dimension; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; import static org.nuiton.i18n.I18n.t; @@ -79,13 +84,12 @@ public class SaveAndOpenReplyFormAction extends SaveAndOpenModalFrameAction<Repl String sender = JAXXUtil.getStringValue(currentDemand.getSender()); if (currentDemand.isFax()) { MailFolder folder = currentDemand.getMailFolder(); - sender = FaxToMailServiceUtils.addFaxDomainToFaxNumber(sender, folder); - - String from = FaxToMailServiceUtils.addFaxDomainToFaxNumber(FaxToMailServiceUtils.getFaxFromNumber(folder), folder); - model.setFrom(from); } model.setTo(sender); + + FaxToMailUIUtil.setFromOnReply(currentDemand, model, sender, getConfig()); + frameContent.getHandler().addReferences(); } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java index 8f8b89e2..7968d84f 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java @@ -41,8 +41,10 @@ import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIHandler; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.content.demande.RangeRowModel; +import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUIModel; import com.google.common.base.Function; import com.google.common.base.Preconditions; +import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Ordering; import com.itextpdf.text.Document; @@ -111,14 +113,7 @@ import java.net.URI; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.ExecutionException; import java.util.regex.Pattern; @@ -1209,4 +1204,32 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { }); } + /** + * Method that set the from on a reply depending on config and type : on fax, use the from from the config, on + * email, if the to contains a protected email (from the config), use the from from the config (refs #10750) + * + * @param currentDemand the current demand + * @param model the reply UI model + * @param to the email recipient (should be the sender of the original email) + * @param config FaxtoMail configuration + */ + public static void setFromOnReply(DemandeUIModel currentDemand, ReplyFormUIModel model, String to, FaxToMailConfiguration config){ + if (currentDemand.isFax()) { + MailFolder folder = currentDemand.getMailFolder(); + String from = FaxToMailServiceUtils.addFaxDomainToFaxNumber(FaxToMailServiceUtils.getFaxFromNumber(folder), folder); + model.setFrom(from); + } else { + String[] protectedEmailDomains = config.getProtectedEmailDomains().split(","); + if (Arrays.stream(protectedEmailDomains).parallel().anyMatch(to::contains)) { + MailFolder folder = currentDemand.getMailFolder(); + Collection<String> replyAddresses = folder.getReplyAddresses(); + if (!replyAddresses.isEmpty()) { + String from = Iterables.get(replyAddresses, 0); + model.setFrom(from); + } + } + } + } + + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.