diff --git a/config/alfresco/templates/invite-email-templates/invite-email-add-direct.html.ftl b/config/alfresco/templates/invite-email-templates/invite-email-add-direct.html.ftl index 72cddf7bcd..a67f350b64 100644 --- a/config/alfresco/templates/invite-email-templates/invite-email-add-direct.html.ftl +++ b/config/alfresco/templates/invite-email-templates/invite-email-add-direct.html.ftl @@ -54,6 +54,8 @@

${inviterPerson.properties["cm:firstName"]!""} ${inviterPerson.properties["cm:lastName"]!""} has added you to the ${args["siteName"]} site with the role of ${args["inviteeSiteRole"]}.

+

Go to ${args["siteName"]} +

Sincerely,
Alfresco ${productName!""}

diff --git a/source/java/org/alfresco/repo/invitation/site/InviteSender.java b/source/java/org/alfresco/repo/invitation/site/InviteSender.java index d3fe5e1d57..2c3bccfdbd 100644 --- a/source/java/org/alfresco/repo/invitation/site/InviteSender.java +++ b/source/java/org/alfresco/repo/invitation/site/InviteSender.java @@ -30,6 +30,7 @@ import static org.alfresco.repo.invitation.WorkflowModelNominatedInvitation.wfVa import static org.alfresco.repo.invitation.WorkflowModelNominatedInvitation.wfVarServerPath; import java.io.Serializable; +import java.text.MessageFormat; import java.util.Arrays; import java.util.HashMap; import java.util.LinkedList; @@ -70,6 +71,7 @@ public class InviteSender { public static final String WF_INSTANCE_ID = "wf_instanceId"; public static final String WF_PACKAGE = "wf_package"; + private static final String SITE_DASHBOARD_ENDPOINT_PATTERN = "/page/site/{0}/dashboard"; private static final List expectedProperties = Arrays.asList(wfVarInviteeUserName,// wfVarResourceName,// @@ -185,7 +187,11 @@ public class InviteSender String params = buildUrlParamString(properties); String acceptLink = makeLink(properties.get(wfVarServerPath), properties.get(wfVarAcceptUrl), params); String rejectLink = makeLink(properties.get(wfVarServerPath), properties.get(wfVarRejectUrl), params); - + + String siteDashboardEndpoint = getSiteDashboardEndpoint(properties); + String siteDashboardLink = makeLink(properties.get(wfVarServerPath), + siteDashboardEndpoint, null); + Map args = new HashMap(); args.put("inviteePersonRef", invitee.toString()); args.put("inviterPersonRef", inviter.toString()); @@ -195,6 +201,7 @@ public class InviteSender args.put("inviteeGenPassword", properties.get(wfVarInviteeGenPassword)); args.put("acceptLink", acceptLink); args.put("rejectLink", rejectLink); + args.put("siteDashboardLink", siteDashboardLink); return args; } @@ -202,7 +209,14 @@ public class InviteSender { location = location.endsWith("/") ? location : location + "/"; endpoint = endpoint.startsWith("/") ? endpoint.substring(1) : endpoint; - queryParams = queryParams.startsWith("?") ? queryParams : "?" + queryParams; + if (queryParams != null) + { + queryParams = queryParams.startsWith("?") ? queryParams : "?" + queryParams; + } + else + { + queryParams = ""; + } return location + endpoint + queryParams; } @@ -275,4 +289,10 @@ public class InviteSender } return siteName; } + + private String getSiteDashboardEndpoint(Map properties) + { + String siteName = properties.get(wfVarResourceName); + return MessageFormat.format(SITE_DASHBOARD_ENDPOINT_PATTERN, siteName); + } } diff --git a/source/test-java/org/alfresco/repo/invitation/site/InviteSenderTest.java b/source/test-java/org/alfresco/repo/invitation/site/InviteSenderTest.java index 5a51b6ed71..715d014a0c 100644 --- a/source/test-java/org/alfresco/repo/invitation/site/InviteSenderTest.java +++ b/source/test-java/org/alfresco/repo/invitation/site/InviteSenderTest.java @@ -96,6 +96,7 @@ public class InviteSenderTest extends TestCase private static final String acceptUrl = "/accpet"; private static final String rejectUrl = "/reject"; + private static final String dashboardUrl = "/dashboard"; private static final String role = "Role"; private static final String password = "password"; private static final String ticket = "Ticket"; @@ -170,6 +171,12 @@ public class InviteSenderTest extends TestCase "test://test/path/reject?inviteId=InstanceId&inviteeUserName=invitee&siteShortName=Full Site Name&inviteTicket=Ticket", argsMap.get("rejectLink")); } + else + { + assertEquals( + "test://test/path/page/site/Full Site Name" + dashboardUrl, + argsMap.get("siteDashboardLink")); + } // When no role message is found then the role name is used.