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.