]> source.dussan.org Git - gitblit.git/commitdiff
Support customizing the "from" display name for generated emails
authorJames Moger <james.moger@gitblit.com>
Tue, 26 Nov 2013 21:26:44 +0000 (16:26 -0500)
committerJames Moger <james.moger@gitblit.com>
Mon, 30 Dec 2013 21:53:58 +0000 (16:53 -0500)
Change-Id: Ibad9e2b1c12a24ad9c671a0d96aafb3365daa529

src/main/java/com/gitblit/FederationClient.java
src/main/java/com/gitblit/authority/GitblitAuthority.java
src/main/java/com/gitblit/manager/GitblitManager.java
src/main/java/com/gitblit/manager/INotificationManager.java
src/main/java/com/gitblit/manager/NotificationManager.java
src/main/java/com/gitblit/service/MailService.java

index c275746386751bbbe1229118cba0168ec5ed5c96..4f4b00bcb67996952ef6a71e42989457df84674a 100644 (file)
@@ -188,5 +188,13 @@ public class FederationClient {
                @Override\r
                public void sendHtmlMail(String subject, String message, String... toAddresses) {\r
                }\r
+\r
+               @Override\r
+               public void sendHtmlMail(String from, String subject, String message, Collection<String> toAddresses) {\r
+               }\r
+\r
+               @Override\r
+               public void sendHtmlMail(String from, String subject, String message, String... toAddresses) {\r
+               }\r
        }\r
 }\r
index 36c016de749498a2676234f5f916a78992cf23b4..51626e644d7fb0b870676aaf87e86d8ff6fbf82f 100644 (file)
@@ -43,6 +43,7 @@ import java.security.cert.CertificateFactory;
 import java.security.cert.X509Certificate;\r
 import java.text.MessageFormat;\r
 import java.util.ArrayList;\r
+import java.util.Arrays;\r
 import java.util.Calendar;\r
 import java.util.Collections;\r
 import java.util.Date;\r
@@ -853,7 +854,7 @@ public class GitblitAuthority extends JFrame implements X509Log {
                // send email\r
                try {\r
                        if (mail.isReady()) {\r
-                               Message message = mail.createMessage(user.emailAddress);\r
+                               Message message = mail.createMessage(Arrays.asList(user.emailAddress));\r
                                message.setSubject("Your Gitblit client certificate for " + metadata.serverHostname);\r
 \r
                                // body of email\r
index b3911814f8b9fbab56d518930cf1222bd95f183e..75b258a559ef4c09f60e6ea84f24e07a71cf75a4 100644 (file)
@@ -593,6 +593,16 @@ public class GitblitManager implements IGitblit {
                notificationManager.sendHtmlMail(subject, message, toAddresses);
        }
 
+       @Override
+       public void sendHtmlMail(String from, String subject, String message, Collection<String> toAddresses) {
+               notificationManager.sendHtmlMail(from, subject, message, toAddresses);
+       }
+
+       @Override
+       public void sendHtmlMail(String from, String subject, String message, String... toAddresses) {
+               notificationManager.sendHtmlMail(from, subject, message, toAddresses);
+       }
+
        /*
         * SESSION MANAGER
         */
index 29d8f5496add0c05c600f834099d20967f791c58..ce5d3f713e251a08e747fa56a19d3e64e638c021 100644 (file)
@@ -63,4 +63,24 @@ public interface INotificationManager extends IManager {
         */
        void sendHtmlMail(String subject, String message, String... toAddresses);
 
+       /**
+        * Notify users by email of something.
+        *
+        * @param from
+        * @param subject
+        * @param message
+        * @param toAddresses
+        */
+       void sendHtmlMail(String from, String subject, String message, Collection<String> toAddresses);
+
+       /**
+        * Notify users by email of something.
+        *
+        * @param from
+        * @param subject
+        * @param message
+        * @param toAddresses
+        */
+       void sendHtmlMail(String from, String subject, String message, String... toAddresses);
+
 }
\ No newline at end of file
index a226d1a08b10ba685bc5517c4668a89414b6b286..22ae55179c2ba432f42cbad8f7622324c3dbdccc 100644 (file)
@@ -142,7 +142,20 @@ public class NotificationManager implements INotificationManager {
         */
        @Override
        public void sendHtmlMail(String subject, String message, Collection<String> toAddresses) {
-               this.sendHtmlMail(subject, message, toAddresses.toArray(new String[0]));
+               this.sendHtmlMail(null, subject, message, toAddresses.toArray(new String[0]));
+       }
+
+       /**
+        * Notify users by email of something.
+        *
+        * @param from
+        * @param subject
+        * @param message
+        * @param toAddresses
+        */
+       @Override
+       public void sendHtmlMail(String from, String subject, String message, Collection<String> toAddresses) {
+               this.sendHtmlMail(from, subject, message, toAddresses.toArray(new String[0]));
        }
 
        /**
@@ -154,12 +167,25 @@ public class NotificationManager implements INotificationManager {
         */
        @Override
        public void sendHtmlMail(String subject, String message, String... toAddresses) {
+               this.sendHtmlMail(null, message, toAddresses);
+       }
+
+       /**
+        * Notify users by email of something.
+        *
+        * @param from
+        * @param subject
+        * @param message
+        * @param toAddresses
+        */
+       @Override
+       public void sendHtmlMail(String from, String subject, String message, String... toAddresses) {
                if (toAddresses == null || toAddresses.length == 0) {
-                       logger.debug(MessageFormat.format("Dropping message {0} because there are no recipients", subject));
+                       logger.debug("Dropping message {} because there are no recipients", subject);
                        return;
                }
                try {
-                       Message mail = mailExecutor.createMessage(toAddresses);
+                       Message mail = mailExecutor.createMessage(from, toAddresses);
                        if (mail != null) {
                                mail.setSubject(subject);
 
index 1d5e91f57d76c85d0c8dcf2cfd74917ca3af80d8..54b6c9118c1e09b3c448455a4fc4eb0695a0aeda 100644 (file)
@@ -114,7 +114,6 @@ public class MailService implements Runnable {
                return session != null;\r
        }\r
 \r
-\r
        /**\r
         * Create a message.\r
         *\r
@@ -122,7 +121,7 @@ public class MailService implements Runnable {
         * @return a message\r
         */\r
        public Message createMessage(String... toAddresses) {\r
-               return createMessage(Arrays.asList(toAddresses));\r
+               return createMessage(null, Arrays.asList(toAddresses));\r
        }\r
 \r
        /**\r
@@ -132,13 +131,35 @@ public class MailService implements Runnable {
         * @return a message\r
         */\r
        public Message createMessage(List<String> toAddresses) {\r
+               return createMessage(null, toAddresses);\r
+       }\r
+\r
+       /**\r
+        * Create a message.\r
+        *\r
+        * @param fromDisplayName\r
+        * @param toAddresses\r
+        * @return a message\r
+        */\r
+       public Message createMessage(String fromDisplayName, String... toAddresses) {\r
+               return createMessage(fromDisplayName, Arrays.asList(toAddresses));\r
+       }\r
+\r
+       /**\r
+        * Create a message.\r
+        *\r
+        * @param fromDisplayName\r
+        * @param toAddresses\r
+        * @return a message\r
+        */\r
+       public Message createMessage(String fromDisplayName, List<String> toAddresses) {\r
                MimeMessage message = new MimeMessage(session);\r
                try {\r
                        String fromAddress = settings.getString(Keys.mail.fromAddress, null);\r
                        if (StringUtils.isEmpty(fromAddress)) {\r
                                fromAddress = "gitblit@gitblit.com";\r
                        }\r
-                       InternetAddress from = new InternetAddress(fromAddress, "Gitblit");\r
+                       InternetAddress from = new InternetAddress(fromAddress, fromDisplayName == null ? "Gitblit" : fromDisplayName);\r
                        message.setFrom(from);\r
 \r
                        // determine unique set of addresses\r