James Moger
2013-11-26 afaab55bf4f309382b55793db44033233dcfb64d
Support customizing the "from" display name for generated emails

Change-Id: Ibad9e2b1c12a24ad9c671a0d96aafb3365daa529
6 files modified
100 ■■■■■ changed files
src/main/java/com/gitblit/FederationClient.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/authority/GitblitAuthority.java 3 ●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/manager/GitblitManager.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/manager/INotificationManager.java 20 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/manager/NotificationManager.java 32 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/service/MailService.java 27 ●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/FederationClient.java
@@ -188,5 +188,13 @@
        @Override
        public void sendHtmlMail(String subject, String message, String... toAddresses) {
        }
        @Override
        public void sendHtmlMail(String from, String subject, String message, Collection<String> toAddresses) {
        }
        @Override
        public void sendHtmlMail(String from, String subject, String message, String... toAddresses) {
        }
    }
}
src/main/java/com/gitblit/authority/GitblitAuthority.java
@@ -43,6 +43,7 @@
import java.security.cert.X509Certificate;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
@@ -853,7 +854,7 @@
        // send email
        try {
            if (mail.isReady()) {
                Message message = mail.createMessage(user.emailAddress);
                Message message = mail.createMessage(Arrays.asList(user.emailAddress));
                message.setSubject("Your Gitblit client certificate for " + metadata.serverHostname);
                // body of email
src/main/java/com/gitblit/manager/GitblitManager.java
@@ -593,6 +593,16 @@
        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
     */
src/main/java/com/gitblit/manager/INotificationManager.java
@@ -63,4 +63,24 @@
     */
    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);
}
src/main/java/com/gitblit/manager/NotificationManager.java
@@ -142,7 +142,20 @@
     */
    @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 @@
     */
    @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);
src/main/java/com/gitblit/service/MailService.java
@@ -114,7 +114,6 @@
        return session != null;
    }
    /**
     * Create a message.
     *
@@ -122,7 +121,7 @@
     * @return a message
     */
    public Message createMessage(String... toAddresses) {
        return createMessage(Arrays.asList(toAddresses));
        return createMessage(null, Arrays.asList(toAddresses));
    }
    /**
@@ -132,13 +131,35 @@
     * @return a message
     */
    public Message createMessage(List<String> toAddresses) {
        return createMessage(null, toAddresses);
    }
    /**
     * Create a message.
     *
     * @param fromDisplayName
     * @param toAddresses
     * @return a message
     */
    public Message createMessage(String fromDisplayName, String... toAddresses) {
        return createMessage(fromDisplayName, Arrays.asList(toAddresses));
    }
    /**
     * Create a message.
     *
     * @param fromDisplayName
     * @param toAddresses
     * @return a message
     */
    public Message createMessage(String fromDisplayName, List<String> toAddresses) {
        MimeMessage message = new MimeMessage(session);
        try {
            String fromAddress = settings.getString(Keys.mail.fromAddress, null);
            if (StringUtils.isEmpty(fromAddress)) {
                fromAddress = "gitblit@gitblit.com";
            }
            InternetAddress from = new InternetAddress(fromAddress, "Gitblit");
            InternetAddress from = new InternetAddress(fromAddress, fromDisplayName == null ? "Gitblit" : fromDisplayName);
            message.setFrom(from);
            // determine unique set of addresses