[pollen] branch feature/Notification created (now ca68e84)
This is an automated email from the git hooks/post-receive script. New change to branch feature/Notification in repository pollen. See http://git.chorem.org/pollen.git at ca68e84 add template email for new Account, new Poll, lost password This branch includes the following new commits: new 3ca0e13 add UI URL render new ca68e84 add template email for new Account, new Poll, lost password The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit ca68e84db268e553e776cc46982177ef532907e8 Author: Adrien Garandel <a.garandel@dralagen.fr> Date: Mon Aug 25 18:02:35 2014 +0200 add template email for new Account, new Poll, lost password commit 3ca0e13c407a12fca8feffbb276548c9dd535e8b Author: Adrien Garandel <a.garandel@dralagen.fr> Date: Mon Aug 25 17:15:30 2014 +0200 add UI URL render -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/Notification in repository pollen. See http://git.chorem.org/pollen.git commit 3ca0e13c407a12fca8feffbb276548c9dd535e8b Author: Adrien Garandel <a.garandel@dralagen.fr> Date: Mon Aug 25 17:15:30 2014 +0200 add UI URL render --- .../src/main/resources/pollen-rest-api.properties | 6 ++ .../services/config/PollenServiceConfig.java | 27 ++++++++ .../services/config/PollenServiceConfigOption.java | 28 +++++++- .../services/service/PollenServiceSupport.java | 4 ++ .../services/service/PollenUIUrlRenderService.java | 77 +++++++++++++++++++++ .../service/PollenUIUrlRenderServiceTest.java | 79 ++++++++++++++++++++++ .../src/test/resources/pollen-services.properties | 5 ++ 7 files changed, 225 insertions(+), 1 deletion(-) diff --git a/pollen-rest-api/src/main/resources/pollen-rest-api.properties b/pollen-rest-api/src/main/resources/pollen-rest-api.properties index 80bb25e..4a49dbc 100644 --- a/pollen-rest-api/src/main/resources/pollen-rest-api.properties +++ b/pollen-rest-api/src/main/resources/pollen-rest-api.properties @@ -25,3 +25,9 @@ hibernate.connection.password=sa hibernate.connection.driver_class=org.h2.Driver hibernate.hbm2ddl.auto=update pollen.version=${project.version} +pollen.ui.host=http://localhost +pollen.ui.url.poll.edit=${pollen.ui.host}/#/poll/edit/{pollId}/{pollToken} +pollen.ui.url.poll.vote=${pollen.ui.host}/#/poll/vote/{pollId}/{pollToken} +pollen.ui.url.poll.vote.edit=${pollen.ui.url.poll.vote}/vote/{voteToken} +#pollen.ui.url.user.forgotPassword=${pollen.ui.host}/#/user/{userId}/{token} +pollen.ui.url.user.validate=${pollen.ui.host}/#/user/{userId}/{token} \ No newline at end of file diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfig.java b/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfig.java index bf52f86..f1f6e78 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfig.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfig.java @@ -34,12 +34,15 @@ import org.chorem.pollen.persistence.entity.CommentVisibility; import org.chorem.pollen.persistence.entity.PollType; import org.chorem.pollen.persistence.entity.ResultVisibility; import org.chorem.pollen.persistence.entity.VoteVisibility; +import org.chorem.pollen.services.PollenApplicationContext; +import org.chorem.pollen.services.PollenService; import org.chorem.pollen.services.PollenTechnicalException; import org.nuiton.config.ApplicationConfig; import org.nuiton.config.ArgumentsParserException; import org.nuiton.util.version.Version; import java.io.File; +import java.net.URL; import java.util.List; import java.util.Map; import java.util.Properties; @@ -229,4 +232,28 @@ public class PollenServiceConfig { public Version getVersion() { return applicationConfig.getOption(Version.class, PollenServiceConfigOption.APPLICATION_VERSION.key); } + + public URL getUIHost() { + return applicationConfig.getOptionAsURL(PollenServiceConfigOption.UI_HOST.key); + } + + public String getPollEditUrl() { + return applicationConfig.getOption(PollenServiceConfigOption.URL_POLL_EDIT.key); + } + + public String getPollVoteUrl() { + return applicationConfig.getOption(PollenServiceConfigOption.URL_POLL_VOTE.key); + } + + public String getPollEditVoteUrl() { + return applicationConfig.getOption(PollenServiceConfigOption.URL_POLL_VOTE_EDIT.key); + } + + public String getUserValidateUrl() { + return applicationConfig.getOption(PollenServiceConfigOption.URL_USER_VALIDATE.key); + } + + public String getPollenUrl () { + return applicationConfig.getOption(PollenServiceConfigOption.UI_HOST.key); + } } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfigOption.java b/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfigOption.java index a3c2208..f768934 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfigOption.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfigOption.java @@ -32,6 +32,7 @@ import org.nuiton.config.ConfigOptionDef; import org.nuiton.util.version.Version; import java.io.File; +import java.net.URL; import static org.nuiton.i18n.I18n.n; @@ -217,7 +218,32 @@ public enum PollenServiceConfigOption implements ConfigOptionDef { "pollen.version", "Version de l'application", null, - Version.class),; + Version.class), + UI_HOST( + "pollen.ui.host", + "Url de l'interface utilisateur", + "http://localhost", + URL.class), + URL_POLL_EDIT( + "pollen.ui.url.poll.edit", + "Url d'édition de sondage", + null, + String.class), + URL_POLL_VOTE( + "pollen.ui.url.poll.vote", + "Url de vote", + null, + String.class), + URL_POLL_VOTE_EDIT( + "pollen.ui.url.poll.vote.edit", + "Url d'edition vote", + null, + String.class), + URL_USER_VALIDATE( + "pollen.ui.url.user.validate", + "Url de validation d'utilisateur", + null, + String.class),; protected final String key; diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java index 97fb35f..300a1bf 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java @@ -127,6 +127,10 @@ public abstract class PollenServiceSupport implements PollenService { return newService(PollenResourceService.class); } + protected PollenUIUrlRenderService getPollenUIUrlRenderService() { + return newService(PollenUIUrlRenderService.class); + } + protected PollenUserService getUserService() { return newService(PollenUserService.class); } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUIUrlRenderService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUIUrlRenderService.java new file mode 100644 index 0000000..bce8ac6 --- /dev/null +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUIUrlRenderService.java @@ -0,0 +1,77 @@ +package org.chorem.pollen.services.service; + +/** + * Created on 25/08/14. + * + * @author dralagen + */ +public class PollenUIUrlRenderService extends PollenServiceSupport { + + public String getPollenUrl() { + return serviceContext.getPollenServiceConfig().getPollenUrl(); + } + + public String getPollEditUrl(String pollId, String token) { + checkNotNull(pollId); + + String url = serviceContext.getPollenServiceConfig().getPollEditUrl(); + + url = url.replace("{pollId}", pollId); + + if (token == null) { + url = url.replace("/{pollToken}", ""); + } + else { + url = url.replace("{pollToken}", token); + } + + return url; + } + + public String getPollVoteUrl(String pollId, String token) { + checkNotNull(pollId); + String url = serviceContext.getPollenServiceConfig().getPollVoteUrl(); + + url = url.replace("{pollId}", pollId); + + if (token == null) { + url = url.replace("/{pollToken}", ""); + } + else { + url = url.replace("{pollToken}", token); + } + + return url; + } + + public String getPollVoteEditUrl(String pollId, String pollToken, String voteToken) { + checkNotNull(pollId); + checkNotNull(voteToken); + + String url = serviceContext.getPollenServiceConfig().getPollEditVoteUrl(); + url = url.replace("{pollId}", pollId); + + if (pollToken == null) { + url = url.replace("/{pollToken}", ""); + } + else { + url = url.replace("{pollToken}", pollToken); + } + + url = url.replace("{voteToken}", voteToken); + + return url; + } + + public String getUserValidateUrl(String userId, String token) { + checkNotNull(userId); + checkNotNull(token); + + String url = serviceContext.getPollenServiceConfig().getUserValidateUrl(); + + url = url.replace("{userId}", userId); + url = url.replace("{token}", token); + + return url; + } +} diff --git a/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUIUrlRenderServiceTest.java b/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUIUrlRenderServiceTest.java new file mode 100644 index 0000000..3b140ef --- /dev/null +++ b/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUIUrlRenderServiceTest.java @@ -0,0 +1,79 @@ +package org.chorem.pollen.services.service; + + +import org.chorem.pollen.services.AbstractPollenServiceTest; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.text.ParseException; + +public class PollenUIUrlRenderServiceTest extends AbstractPollenServiceTest { + protected PollenUIUrlRenderService service; + + @Before + public void setUp() throws ParseException { + + service = newService(PollenUIUrlRenderService.class); + } + + @Test + public void pollenUrlTest() { + String url = null; + + url = service.getPollenUrl(); + + Assert.assertNotNull(url); + Assert.assertEquals("http://localhost", url); + } + + @Test + public void pollEditUrlTest() { + String url = null; + + url = service.getPollEditUrl("PollId", null); + Assert.assertNotNull(url); + Assert.assertEquals("http://localhost/#/poll/edit/PollId", url); + + url = service.getPollEditUrl("PollId", "Token"); + Assert.assertNotNull(url); + Assert.assertEquals("http://localhost/#/poll/edit/PollId/Token", url); + } + + @Test + public void pollVoteUrlTest() { + String url = null; + + url = service.getPollVoteUrl("PollId", null); + Assert.assertNotNull(url); + Assert.assertEquals("http://localhost/#/poll/vote/PollId", url); + + url = service.getPollVoteUrl("PollId", "Token"); + Assert.assertNotNull(url); + Assert.assertEquals("http://localhost/#/poll/vote/PollId/Token", url); + } + + @Test + public void pollVoteEditUrlTest() { + String url = null; + + url = service.getPollVoteEditUrl("PollId", null, "VoteToken"); + Assert.assertNotNull(url); + Assert.assertEquals("http://localhost/#/poll/vote/PollId/vote/VoteToken", url); + + url = service.getPollVoteEditUrl("PollId", "Token", "VoteToken"); + Assert.assertNotNull(url); + Assert.assertEquals("http://localhost/#/poll/vote/PollId/Token/vote/VoteToken", url); + } + + @Test + public void userValidateUrl() { + String url = null; + + url = service.getUserValidateUrl("UserId", "Token"); + + Assert.assertNotNull(url); + Assert.assertEquals("http://localhost/#/user/UserId/Token", url); + } + +} \ No newline at end of file diff --git a/pollen-services/src/test/resources/pollen-services.properties b/pollen-services/src/test/resources/pollen-services.properties index a9d9843..6235b0c 100644 --- a/pollen-services/src/test/resources/pollen-services.properties +++ b/pollen-services/src/test/resources/pollen-services.properties @@ -25,3 +25,8 @@ hibernate.connection.password=sa hibernate.connection.driver_class=org.h2.Driver hibernate.hbm2ddl.auto=update pollen.version=${project.version} +pollen.ui.host=http://localhost +pollen.ui.url.poll.edit=${pollen.ui.host}/#/poll/edit/{pollId}/{pollToken} +pollen.ui.url.poll.vote=${pollen.ui.host}/#/poll/vote/{pollId}/{pollToken} +pollen.ui.url.poll.vote.edit=${pollen.ui.url.poll.vote}/vote/{voteToken} +pollen.ui.url.user.validate=${pollen.ui.host}/#/user/{userId}/{token} \ No newline at end of file -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/Notification in repository pollen. See http://git.chorem.org/pollen.git commit ca68e84db268e553e776cc46982177ef532907e8 Author: Adrien Garandel <a.garandel@dralagen.fr> Date: Mon Aug 25 18:02:35 2014 +0200 add template email for new Account, new Poll, lost password --- .../services/service/NotificationService.java | 34 +++++++++++----------- .../pollen/services/service/PollenUserService.java | 2 +- .../services/service/mail/ChoiceAddedEmail.java | 2 +- .../services/service/mail/ChoiceDeletedEmail.java | 2 +- .../services/service/mail/ChoiceEditedEmail.java | 2 +- .../services/service/mail/CommentAddedEmail.java | 2 +- .../services/service/mail/CommentDeletedEmail.java | 2 +- .../services/service/mail/CommentEditedEmail.java | 2 +- .../pollen/services/service/mail/EmailService.java | 20 +++++++++++-- .../services/service/mail/LostPasswordEmail.java | 17 ++++++++++- .../service/mail/PollChoicePeriodEndedEmail.java | 2 +- .../service/mail/PollChoicePeriodStartedEmail.java | 2 +- .../services/service/mail/PollClosedEmail.java | 2 +- .../services/service/mail/PollCreatedEmail.java | 13 ++++++++- .../service/mail/PollVotePeriodEndedEmail.java | 2 +- .../service/mail/PollVotePeriodStartedEmail.java | 2 +- .../service/mail/PollVoteReminderEmail.java | 2 +- .../mail/RestrictedPollInvitationEmail.java | 2 +- .../service/mail/UserAccountCreatedEmail.java | 24 ++++++++++++++- .../services/service/mail/VoteAddedEmail.java | 2 +- .../services/service/mail/VoteDeletedEmail.java | 2 +- .../services/service/mail/VoteEditedEmail.java | 2 +- .../resources/email/LostPasswordEmail.mustache | 8 +++++ .../resources/email/LostPasswordEmail_fr.mustache | 8 +++++ ...wordEmail.mustache => PollClosedEmail.mustache} | 0 ...dEmail.mustache => PollClosedEmail_fr.mustache} | 0 .../main/resources/email/PollCreatedEmail.mustache | 6 ++++ .../resources/email/PollCreatedEmail_fr.mustache | 5 ++++ .../email/UserAccountCreatedEmail.mustache | 8 +++++ .../email/UserAccountCreatedEmail_fr.mustache | 8 +++++ 30 files changed, 146 insertions(+), 39 deletions(-) diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/NotificationService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/NotificationService.java index 250bbec..a810571 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/NotificationService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/NotificationService.java @@ -21,16 +21,8 @@ package org.chorem.pollen.services.service; * #L% */ -import org.chorem.pollen.persistence.entity.Choice; -import org.chorem.pollen.persistence.entity.Comment; -import org.chorem.pollen.persistence.entity.FavoriteList; -import org.chorem.pollen.persistence.entity.Poll; -import org.chorem.pollen.persistence.entity.PollenUser; -import org.chorem.pollen.persistence.entity.Vote; -import org.chorem.pollen.services.service.mail.EmailService; -import org.chorem.pollen.services.service.mail.PollClosedEmail; -import org.chorem.pollen.services.service.mail.PollCreatedEmail; -import org.chorem.pollen.services.service.mail.UserAccountCreatedEmail; +import org.chorem.pollen.persistence.entity.*; +import org.chorem.pollen.services.service.mail.*; /** * Created on 4/30/14. @@ -40,11 +32,13 @@ import org.chorem.pollen.services.service.mail.UserAccountCreatedEmail; */ public class NotificationService extends PollenServiceSupport { - public void onUserCreated(PollenUser user, boolean generatePassword) { + public void onUserCreated(PollenUser user, String password) { EmailService emailService = getEmailService(); - UserAccountCreatedEmail email = emailService.newUserAccountCreatedEmail(getLocale(), user); - //TODO Add tos and bccs + UserAccountCreatedEmail email = emailService.newUserAccountCreatedEmail(getLocale(), user, password); + + email.addTo(user.getEmail()); + emailService.send(email); } @@ -68,8 +62,10 @@ public class NotificationService extends PollenServiceSupport { public void onUserLostPasswordAsked(PollenUser user, String newPassword) { EmailService emailService = getEmailService(); - UserAccountCreatedEmail email = emailService.newUserAccountCreatedEmail(getLocale(), user); - //TODO Add tos and bccs + LostPasswordEmail email = emailService.newLostPasswordEmail(getLocale(), user, newPassword); + + email.addTo(user.getEmail()); + emailService.send(email); } @@ -90,7 +86,9 @@ public class NotificationService extends PollenServiceSupport { EmailService emailService = getEmailService(); PollCreatedEmail email = emailService.newPollCreatedEmail(getLocale(), poll); - //TODO Add tos and bccs + + email.addTo(poll.getCreator().getEmail()); + emailService.send(email); } @@ -107,7 +105,9 @@ public class NotificationService extends PollenServiceSupport { EmailService emailService = getEmailService(); PollClosedEmail email = emailService.newPollClosedEmail(getLocale(), poll); - //TODO Add tos and bccs + + email.addTo(poll.getCreator().getEmail()); + emailService.send(email); } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java index 7fc85cc..108231f 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java @@ -102,7 +102,7 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer PollenUser result = savePollenUser(user, generatePassword); commit(); - getNotificationService().onUserCreated(result, generatePassword); + getNotificationService().onUserCreated(result, user.getPassword()); PollenEntityRef<PollenUser> createBeanRef = PollenEntityRef.of(result); return createBeanRef; diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ChoiceAddedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ChoiceAddedEmail.java index a5e8b0a..e850d98 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ChoiceAddedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ChoiceAddedEmail.java @@ -45,7 +45,7 @@ public class ChoiceAddedEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.ChoiceAddedEmail.subject"); + return I18n.l(locale, "pollen.service.mail.ChoiceAddedEmail.subject", poll.getTitle()); } public Poll getPoll() { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ChoiceDeletedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ChoiceDeletedEmail.java index 3096d07..b116436 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ChoiceDeletedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ChoiceDeletedEmail.java @@ -45,7 +45,7 @@ public class ChoiceDeletedEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.ChoiceDeletedEmail.subject"); + return I18n.l(locale, "pollen.service.mail.ChoiceDeletedEmail.subject", poll.getTitle()); } public Poll getPoll() { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ChoiceEditedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ChoiceEditedEmail.java index 39da0a4..67dab6e 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ChoiceEditedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ChoiceEditedEmail.java @@ -45,7 +45,7 @@ public class ChoiceEditedEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.ChoiceEditedEmail.subject"); + return I18n.l(locale, "pollen.service.mail.ChoiceEditedEmail.subject", poll.getTitle()); } public Poll getPoll() { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/CommentAddedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/CommentAddedEmail.java index 9a4754d..25cf8c1 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/CommentAddedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/CommentAddedEmail.java @@ -45,7 +45,7 @@ public class CommentAddedEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.CommentAddedEmail.subject"); + return I18n.l(locale, "pollen.service.mail.CommentAddedEmail.subject", poll.getTitle()); } public Poll getPoll() { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/CommentDeletedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/CommentDeletedEmail.java index 405360f..e693728 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/CommentDeletedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/CommentDeletedEmail.java @@ -45,7 +45,7 @@ public class CommentDeletedEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.CommentDeletedEmail.subject"); + return I18n.l(locale, "pollen.service.mail.CommentDeletedEmail.subject", poll.getTitle()); } public Poll getPoll() { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/CommentEditedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/CommentEditedEmail.java index 0da22c4..80b0879 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/CommentEditedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/CommentEditedEmail.java @@ -45,7 +45,7 @@ public class CommentEditedEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.CommentEditedEmail.subject"); + return I18n.l(locale, "pollen.service.mail.CommentEditedEmail.subject", poll.getTitle()); } public Poll getPoll() { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java index b5ff353..705f2a3 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java @@ -38,6 +38,7 @@ import org.chorem.pollen.persistence.entity.PollenPrincipal; import org.chorem.pollen.persistence.entity.PollenUser; import org.chorem.pollen.persistence.entity.Vote; import org.chorem.pollen.services.PollenTechnicalException; +import org.chorem.pollen.services.bean.PollenEntityId; import org.chorem.pollen.services.config.PollenServiceConfig; import org.chorem.pollen.services.service.PollenServiceSupport; @@ -83,7 +84,7 @@ public class EmailService extends PollenServiceSupport { return email; } - public CommentEditedEmail newCommnetEditedEmail(Locale locale, Poll poll, Comment comment) { + public CommentEditedEmail newCommentEditedEmail(Locale locale, Poll poll, Comment comment) { CommentEditedEmail email = new CommentEditedEmail(locale); email.setPoll(poll); email.setComment(comment); @@ -121,6 +122,13 @@ public class EmailService extends PollenServiceSupport { public PollCreatedEmail newPollCreatedEmail(Locale locale, Poll poll) { PollCreatedEmail email = new PollCreatedEmail(locale); email.setPoll(poll); + + PollenEntityId<Poll> pollId = PollenEntityId.newId(Poll.class); + pollId.setEntityId(poll.getTopiaId()); + pollId.encode(serviceContext.getTopiaApplicationContext().getTopiaIdFactory()); + + email.setUrl(getPollenUIUrlRenderService().getPollEditUrl(pollId.getReducedId(), poll.getCreator().getPermission().getToken())); + return email; } @@ -167,9 +175,17 @@ public class EmailService extends PollenServiceSupport { return email; } - public UserAccountCreatedEmail newUserAccountCreatedEmail(Locale locale, PollenUser user) { + public UserAccountCreatedEmail newUserAccountCreatedEmail(Locale locale, PollenUser user, String password) { UserAccountCreatedEmail email = new UserAccountCreatedEmail(locale); email.setUser(user); + email.setPassword(password); + + PollenEntityId<PollenUser> userId = PollenEntityId.newId(PollenUser.class); + userId.setEntityId(user.getTopiaId()); + userId.encode(serviceContext.getTopiaApplicationContext().getTopiaIdFactory()); + + email.setUrl(getPollenUIUrlRenderService().getUserValidateUrl(userId.getReducedId(), user.getEmailActivationToken().getToken())); + return email; } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/LostPasswordEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/LostPasswordEmail.java index 80f792b..2cdb91e 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/LostPasswordEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/LostPasswordEmail.java @@ -38,6 +38,8 @@ public class LostPasswordEmail extends PollenMail { private String password; + private String url; + protected LostPasswordEmail(Locale locale) { super(locale); } @@ -60,6 +62,19 @@ public class LostPasswordEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.LostPasswordEmail.subject"); + if (user.getName() == null) { + return I18n.l(locale, "pollen.service.mail.LostPasswordEmail.subject", user.getEmail()); + } + return I18n.l(locale, "pollen.service.mail.LostPasswordEmail.subject", user.getName()); + } + + /* + public String getUrl () { + return url; + } + + public void setUrl (String url) { + this.url = url; } + */ } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollChoicePeriodEndedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollChoicePeriodEndedEmail.java index 17de506..7d99aad 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollChoicePeriodEndedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollChoicePeriodEndedEmail.java @@ -42,7 +42,7 @@ public class PollChoicePeriodEndedEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.PollChoicePeriodEndedEmail.subject"); + return I18n.l(locale, "pollen.service.mail.PollChoicePeriodEndedEmail.subject", poll.getTitle()); } public Poll getPoll() { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollChoicePeriodStartedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollChoicePeriodStartedEmail.java index 99927cf..ad6043c 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollChoicePeriodStartedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollChoicePeriodStartedEmail.java @@ -42,7 +42,7 @@ public class PollChoicePeriodStartedEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.PollChoicePeriodStartedEmail.subject"); + return I18n.l(locale, "pollen.service.mail.PollChoicePeriodStartedEmail.subject", poll.getTitle()); } public Poll getPoll() { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollClosedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollClosedEmail.java index 30383da..d4cb9fa 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollClosedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollClosedEmail.java @@ -42,7 +42,7 @@ public class PollClosedEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.PollClosedEmail.subject"); + return I18n.l(locale, "pollen.service.mail.PollClosedEmail.subject", poll.getTitle()); } public Poll getPoll() { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollCreatedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollCreatedEmail.java index 3554aba..e96a727 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollCreatedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollCreatedEmail.java @@ -22,6 +22,7 @@ package org.chorem.pollen.services.service.mail; */ import org.chorem.pollen.persistence.entity.Poll; +import org.chorem.pollen.services.PollenServiceContext; import org.nuiton.i18n.I18n; import java.util.Locale; @@ -36,13 +37,15 @@ public class PollCreatedEmail extends PollenMail { protected Poll poll; + protected String url; + protected PollCreatedEmail(Locale locale) { super(locale); } @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.PollCreatedEmail.subject"); + return I18n.l(locale, "pollen.service.mail.PollCreatedEmail.subject", poll.getTitle()); } public Poll getPoll() { @@ -52,4 +55,12 @@ public class PollCreatedEmail extends PollenMail { public void setPoll(Poll poll) { this.poll = poll; } + + public String getUrl () { + return url; + } + + public void setUrl (String url) { + this.url = url; + } } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollVotePeriodEndedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollVotePeriodEndedEmail.java index 9e4db4e..f6c93dd 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollVotePeriodEndedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollVotePeriodEndedEmail.java @@ -42,7 +42,7 @@ public class PollVotePeriodEndedEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.PollVotePeriodEndedEmail.subject"); + return I18n.l(locale, "pollen.service.mail.PollVotePeriodEndedEmail.subject", poll.getTitle()); } public Poll getPoll() { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollVotePeriodStartedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollVotePeriodStartedEmail.java index 0926b55..7d2c1d6 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollVotePeriodStartedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollVotePeriodStartedEmail.java @@ -42,7 +42,7 @@ public class PollVotePeriodStartedEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.PollVotePeriodStartedEmail.subject"); + return I18n.l(locale, "pollen.service.mail.PollVotePeriodStartedEmail.subject", poll.getTitle()); } public Poll getPoll() { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollVoteReminderEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollVoteReminderEmail.java index 399dbcb..1cc1266 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollVoteReminderEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollVoteReminderEmail.java @@ -42,7 +42,7 @@ public class PollVoteReminderEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.PollVoteReminderEmail.subject"); + return I18n.l(locale, "pollen.service.mail.PollVoteReminderEmail.subject", poll.getTitle()); } public Poll getPoll() { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/RestrictedPollInvitationEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/RestrictedPollInvitationEmail.java index e624f93..521a468 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/RestrictedPollInvitationEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/RestrictedPollInvitationEmail.java @@ -45,7 +45,7 @@ public class RestrictedPollInvitationEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.RestrictedPollInvitationEmail.subject"); + return I18n.l(locale, "pollen.service.mail.RestrictedPollInvitationEmail.subject", poll.getTitle()); } public Poll getPoll() { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/UserAccountCreatedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/UserAccountCreatedEmail.java index f3aa3ab..502b057 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/UserAccountCreatedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/UserAccountCreatedEmail.java @@ -36,13 +36,19 @@ public class UserAccountCreatedEmail extends PollenMail { private PollenUser user; + private String url; + private String password; + protected UserAccountCreatedEmail(Locale locale) { super(locale); } @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.UserAccountCreatedEmail.subject"); + if (user.getName() == null) { + return I18n.l(locale, "pollen.service.mail.UserAccountCreatedEmail.subject", user.getEmail()); + } + return I18n.l(locale, "pollen.service.mail.UserAccountCreatedEmail.subject", user.getName()); } public PollenUser getUser() { @@ -52,4 +58,20 @@ public class UserAccountCreatedEmail extends PollenMail { public void setUser(PollenUser user) { this.user = user; } + + public String getUrl () { + return url; + } + + public void setUrl (String url) { + this.url = url; + } + + public String getPassword () { + return password; + } + + public void setPassword (String password) { + this.password = password; + } } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/VoteAddedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/VoteAddedEmail.java index 83e7d5a..6017971 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/VoteAddedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/VoteAddedEmail.java @@ -45,7 +45,7 @@ public class VoteAddedEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.VoteAddedEmail.subject"); + return I18n.l(locale, "pollen.service.mail.VoteAddedEmail.subject", poll.getTitle()); } public Vote getVote() { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/VoteDeletedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/VoteDeletedEmail.java index 38378d0..9ccaeb5 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/VoteDeletedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/VoteDeletedEmail.java @@ -45,7 +45,7 @@ public class VoteDeletedEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.VoteDeletedEmail.subject"); + return I18n.l(locale, "pollen.service.mail.VoteDeletedEmail.subject", poll.getTitle()); } public Vote getVote() { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/VoteEditedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/VoteEditedEmail.java index d4c3983..9862825 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/VoteEditedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/VoteEditedEmail.java @@ -45,7 +45,7 @@ public class VoteEditedEmail extends PollenMail { @Override public String getSubject() { - return I18n.l(locale, "pollen.service.mail.VoteEditedEmail.subject"); + return I18n.l(locale, "pollen.service.mail.VoteEditedEmail.subject", poll.getTitle()); } public Vote getVote() { diff --git a/pollen-services/src/main/resources/email/LostPasswordEmail.mustache b/pollen-services/src/main/resources/email/LostPasswordEmail.mustache index e69de29..b65f341 100644 --- a/pollen-services/src/main/resources/email/LostPasswordEmail.mustache +++ b/pollen-services/src/main/resources/email/LostPasswordEmail.mustache @@ -0,0 +1,8 @@ +Hello {{user.name}} + +You have just asked for a new password generation for your Pollen account. + +Email: {{user.email}} +Password: {{password}} + +You can now manage your polls by logging on the <a href="{{url}}">Pollen</a> website. \ No newline at end of file diff --git a/pollen-services/src/main/resources/email/LostPasswordEmail_fr.mustache b/pollen-services/src/main/resources/email/LostPasswordEmail_fr.mustache index e69de29..c7b153d 100644 --- a/pollen-services/src/main/resources/email/LostPasswordEmail_fr.mustache +++ b/pollen-services/src/main/resources/email/LostPasswordEmail_fr.mustache @@ -0,0 +1,8 @@ +Bonjour {{user.name}} + +Vous venez de demander la génération d'un nouveau mot de passe d'accès à votre compte Pollen. + +Courriel: {{user.email}} +Mot de passe: {{password}} + +Vous pouvez gérer vos sondage en vous connectant sur <a href="{{url}}">Pollen</a>. \ No newline at end of file diff --git a/pollen-services/src/main/resources/email/LostPasswordEmail.mustache b/pollen-services/src/main/resources/email/PollClosedEmail.mustache similarity index 100% copy from pollen-services/src/main/resources/email/LostPasswordEmail.mustache copy to pollen-services/src/main/resources/email/PollClosedEmail.mustache diff --git a/pollen-services/src/main/resources/email/LostPasswordEmail.mustache b/pollen-services/src/main/resources/email/PollClosedEmail_fr.mustache similarity index 100% copy from pollen-services/src/main/resources/email/LostPasswordEmail.mustache copy to pollen-services/src/main/resources/email/PollClosedEmail_fr.mustache diff --git a/pollen-services/src/main/resources/email/PollCreatedEmail.mustache b/pollen-services/src/main/resources/email/PollCreatedEmail.mustache index e69de29..fb00542 100644 --- a/pollen-services/src/main/resources/email/PollCreatedEmail.mustache +++ b/pollen-services/src/main/resources/email/PollCreatedEmail.mustache @@ -0,0 +1,6 @@ +Hello {{ poll.creator.name }} + +You had just created the new poll : <a href="{{url}}">{{ poll.title }}</a> + +{{{ poll.description }}} + diff --git a/pollen-services/src/main/resources/email/PollCreatedEmail_fr.mustache b/pollen-services/src/main/resources/email/PollCreatedEmail_fr.mustache index e69de29..ebc0f1f 100644 --- a/pollen-services/src/main/resources/email/PollCreatedEmail_fr.mustache +++ b/pollen-services/src/main/resources/email/PollCreatedEmail_fr.mustache @@ -0,0 +1,5 @@ +Bonjour {{ poll.creator.name }} + +Le sondage vient d'être créé : <a href="{{url}}">{{ poll.title }}</a> + +{{{ poll.description }}} diff --git a/pollen-services/src/main/resources/email/UserAccountCreatedEmail.mustache b/pollen-services/src/main/resources/email/UserAccountCreatedEmail.mustache index e69de29..77981f8 100644 --- a/pollen-services/src/main/resources/email/UserAccountCreatedEmail.mustache +++ b/pollen-services/src/main/resources/email/UserAccountCreatedEmail.mustache @@ -0,0 +1,8 @@ +Welcome {{user.name}} + +You had just created an account on the web application Pollen. + +Email: {{user.email}} +Password: {{password}} + +You can now manage your polls by logging on the <a href="{{url}}">Pollen</a> website. \ No newline at end of file diff --git a/pollen-services/src/main/resources/email/UserAccountCreatedEmail_fr.mustache b/pollen-services/src/main/resources/email/UserAccountCreatedEmail_fr.mustache index e69de29..21f6c9e 100644 --- a/pollen-services/src/main/resources/email/UserAccountCreatedEmail_fr.mustache +++ b/pollen-services/src/main/resources/email/UserAccountCreatedEmail_fr.mustache @@ -0,0 +1,8 @@ +Bonjour {{user.name}} + +Vous venez de créer un compte sur l'application en ligne Pollen + +Courriel: {{user.email}} +Password: {{password}} + +Vous pouvez gérer vos sondage en vous connectant sur <a href="{{url}}">Pollen</a>. \ No newline at end of file -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm