mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Added invitee first name and last name parameters to the "/api/invite/start" web script call for the Invite Service
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@9831 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<webscript>
|
<webscript>
|
||||||
<shortname>Invite</shortname>
|
<shortname>Invite</shortname>
|
||||||
<description>Processes Inviter actions ('start' or 'cancel' invite)</description>
|
<description>Processes Inviter actions ('start' or 'cancel' invite)</description>
|
||||||
<url>/api/invite/start?inviteeEmail={inviteeEmailAddress}&siteShortName={siteShortName}</url>
|
<url>/api/invite/start?inviteeFirstName={inviteeFirstName}&inviteeLastName={inviteeLastName}&inviteeEmail={inviteeEmailAddress}&siteShortName={siteShortName}</url>
|
||||||
<url>/api/invite/cancel?inviteId={inviteId}</url>
|
<url>/api/invite/cancel?inviteId={inviteId}</url>
|
||||||
<format default="json"/>
|
<format default="json"/>
|
||||||
<authentication>user</authentication>
|
<authentication>user</authentication>
|
||||||
|
@@ -10,6 +10,21 @@
|
|||||||
<#else>
|
<#else>
|
||||||
"inviteeUserName" : undefined,
|
"inviteeUserName" : undefined,
|
||||||
</#if>
|
</#if>
|
||||||
|
<#if inviteeFirstName??>
|
||||||
|
"inviteeFirstName" : "${inviteeFirstName}",
|
||||||
|
<#else>
|
||||||
|
"inviteeFirstName" : undefined,
|
||||||
|
</#if>
|
||||||
|
<#if inviteeLastName??>
|
||||||
|
"inviteeLastName" : "${inviteeLastName}",
|
||||||
|
<#else>
|
||||||
|
"inviteeLastName" : undefined,
|
||||||
|
</#if>
|
||||||
|
<#if inviteeEmail??>
|
||||||
|
"inviteeEmail" : "${inviteeEmail}",
|
||||||
|
<#else>
|
||||||
|
"inviteeEmail" : undefined,
|
||||||
|
</#if>
|
||||||
<#if siteShortName??>
|
<#if siteShortName??>
|
||||||
"siteShortName" : "${siteShortName}"
|
"siteShortName" : "${siteShortName}"
|
||||||
<#else>
|
<#else>
|
||||||
|
@@ -66,9 +66,14 @@ public class Invite extends DeclarativeWebScript
|
|||||||
private static final String MODEL_PROP_KEY_ACTION = "action";
|
private static final String MODEL_PROP_KEY_ACTION = "action";
|
||||||
private static final String MODEL_PROP_KEY_INVITE_ID = "inviteId";
|
private static final String MODEL_PROP_KEY_INVITE_ID = "inviteId";
|
||||||
private static final String MODEL_PROP_KEY_INVITEE_USER_NAME = "inviteeUserName";
|
private static final String MODEL_PROP_KEY_INVITEE_USER_NAME = "inviteeUserName";
|
||||||
|
private static final String MODEL_PROP_KEY_INVITEE_FIRSTNAME = "inviteeFirstName";
|
||||||
|
private static final String MODEL_PROP_KEY_INVITEE_LASTNAME = "inviteeLastName";
|
||||||
|
private static final String MODEL_PROP_KEY_INVITEE_EMAIL = "inviteeEmail";
|
||||||
private static final String MODEL_PROP_KEY_SITE_SHORT_NAME = "siteShortName";
|
private static final String MODEL_PROP_KEY_SITE_SHORT_NAME = "siteShortName";
|
||||||
|
|
||||||
// URL request parameter names
|
// URL request parameter names
|
||||||
|
private static final String PARAM_INVITEE_FIRSTNAME = "inviteeFirstName";
|
||||||
|
private static final String PARAM_INVITEE_LASTNAME = "inviteeLastName";
|
||||||
private static final String PARAM_INVITEE_EMAIL = "inviteeEmail";
|
private static final String PARAM_INVITEE_EMAIL = "inviteeEmail";
|
||||||
private static final String PARAM_SITE_SHORT_NAME = "siteShortName";
|
private static final String PARAM_SITE_SHORT_NAME = "siteShortName";
|
||||||
private static final String PARAM_INVITE_ID = "inviteId";
|
private static final String PARAM_INVITE_ID = "inviteId";
|
||||||
@@ -227,6 +232,28 @@ public class Invite extends DeclarativeWebScript
|
|||||||
// handle action 'start'
|
// handle action 'start'
|
||||||
if (action.equals(ACTION_START))
|
if (action.equals(ACTION_START))
|
||||||
{
|
{
|
||||||
|
// check for 'inviteeFirstName' parameter not provided
|
||||||
|
String inviteeFirstName = req.getParameter(PARAM_INVITEE_FIRSTNAME);
|
||||||
|
if ((inviteeFirstName == null) || (inviteeFirstName.length() == 0))
|
||||||
|
{
|
||||||
|
// handle inviteeFirstName URL parameter not provided
|
||||||
|
throw new WebScriptException(Status.STATUS_BAD_REQUEST,
|
||||||
|
"'inviteeFirstName' parameter "
|
||||||
|
+ "has not been provided in URL for action '"
|
||||||
|
+ ACTION_START + "'");
|
||||||
|
}
|
||||||
|
|
||||||
|
// check for 'inviteeLastName' parameter not provided
|
||||||
|
String inviteeLastName = req.getParameter(PARAM_INVITEE_LASTNAME);
|
||||||
|
if ((inviteeLastName == null) || (inviteeLastName.length() == 0))
|
||||||
|
{
|
||||||
|
// handle inviteeLastName URL parameter not provided
|
||||||
|
throw new WebScriptException(Status.STATUS_BAD_REQUEST,
|
||||||
|
"'inviteeLastName' parameter "
|
||||||
|
+ "has not been provided in URL for action '"
|
||||||
|
+ ACTION_START + "'");
|
||||||
|
}
|
||||||
|
|
||||||
// check for 'inviteeEmail' parameter not provided
|
// check for 'inviteeEmail' parameter not provided
|
||||||
String inviteeEmail = req.getParameter(PARAM_INVITEE_EMAIL);
|
String inviteeEmail = req.getParameter(PARAM_INVITEE_EMAIL);
|
||||||
if ((inviteeEmail == null) || (inviteeEmail.length() == 0))
|
if ((inviteeEmail == null) || (inviteeEmail.length() == 0))
|
||||||
@@ -250,7 +277,7 @@ public class Invite extends DeclarativeWebScript
|
|||||||
}
|
}
|
||||||
|
|
||||||
// process action 'start' with provided parameters
|
// process action 'start' with provided parameters
|
||||||
startInvite(model, inviteeEmail, siteShortName);
|
startInvite(model, inviteeFirstName, inviteeLastName, inviteeEmail, siteShortName);
|
||||||
}
|
}
|
||||||
// else handle if provided 'action' is 'cancel'
|
// else handle if provided 'action' is 'cancel'
|
||||||
else if (action.equals(ACTION_CANCEL))
|
else if (action.equals(ACTION_CANCEL))
|
||||||
@@ -286,6 +313,10 @@ public class Invite extends DeclarativeWebScript
|
|||||||
* @param model
|
* @param model
|
||||||
* model to add objects to, which will be passed to the template
|
* model to add objects to, which will be passed to the template
|
||||||
* for rendering
|
* for rendering
|
||||||
|
* @param inviteeFirstName
|
||||||
|
* first name of invitee
|
||||||
|
* @param inviteeLastNamme
|
||||||
|
* last name of invitee
|
||||||
* @param inviteeEmail
|
* @param inviteeEmail
|
||||||
* email address of invitee
|
* email address of invitee
|
||||||
* @param siteShortName
|
* @param siteShortName
|
||||||
@@ -293,8 +324,8 @@ public class Invite extends DeclarativeWebScript
|
|||||||
* inviter
|
* inviter
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private void startInvite(Map<String, Object> model, String inviteeEmail,
|
private void startInvite(Map<String, Object> model, String inviteeFirstName, String inviteeLastName,
|
||||||
String siteShortName)
|
String inviteeEmail, String siteShortName)
|
||||||
{
|
{
|
||||||
// get the inviter user name (the name of user web script is executed under)
|
// get the inviter user name (the name of user web script is executed under)
|
||||||
// - needs to be assigned here because various system calls further on
|
// - needs to be assigned here because various system calls further on
|
||||||
@@ -323,6 +354,8 @@ public class Invite extends DeclarativeWebScript
|
|||||||
Map<QName, Serializable> properties = new HashMap<QName, Serializable>();
|
Map<QName, Serializable> properties = new HashMap<QName, Serializable>();
|
||||||
|
|
||||||
properties.put(ContentModel.PROP_USERNAME, inviteeUserName);
|
properties.put(ContentModel.PROP_USERNAME, inviteeUserName);
|
||||||
|
properties.put(ContentModel.PROP_FIRSTNAME, inviteeFirstName);
|
||||||
|
properties.put(ContentModel.PROP_LASTNAME, inviteeLastName);
|
||||||
properties.put(ContentModel.PROP_EMAIL, inviteeEmail);
|
properties.put(ContentModel.PROP_EMAIL, inviteeEmail);
|
||||||
|
|
||||||
this.personService.createPerson(properties);
|
this.personService.createPerson(properties);
|
||||||
@@ -403,6 +436,9 @@ public class Invite extends DeclarativeWebScript
|
|||||||
model.put(MODEL_PROP_KEY_ACTION, ACTION_START);
|
model.put(MODEL_PROP_KEY_ACTION, ACTION_START);
|
||||||
model.put(MODEL_PROP_KEY_INVITE_ID, workflowId);
|
model.put(MODEL_PROP_KEY_INVITE_ID, workflowId);
|
||||||
model.put(MODEL_PROP_KEY_INVITEE_USER_NAME, inviteeUserName);
|
model.put(MODEL_PROP_KEY_INVITEE_USER_NAME, inviteeUserName);
|
||||||
|
model.put(MODEL_PROP_KEY_INVITEE_FIRSTNAME, inviteeFirstName);
|
||||||
|
model.put(MODEL_PROP_KEY_INVITEE_LASTNAME, inviteeLastName);
|
||||||
|
model.put(MODEL_PROP_KEY_INVITEE_EMAIL, inviteeEmail);
|
||||||
model.put(MODEL_PROP_KEY_SITE_SHORT_NAME, siteShortName);
|
model.put(MODEL_PROP_KEY_SITE_SHORT_NAME, siteShortName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -51,6 +51,8 @@ public class InviteServiceTest extends BaseWebScriptTest
|
|||||||
|
|
||||||
private static final String USER_ADMIN = "admin";
|
private static final String USER_ADMIN = "admin";
|
||||||
private static final String USER_INVITER = "InviteeUser";
|
private static final String USER_INVITER = "InviteeUser";
|
||||||
|
private static final String INVITEE_FIRSTNAME = "InviteeFirstName";
|
||||||
|
private static final String INVITEE_LASTNAME = "InviteeLastName";
|
||||||
private static final String INVITEE_EMAIL = "inviter123@email.com";
|
private static final String INVITEE_EMAIL = "inviter123@email.com";
|
||||||
private static final String SITE_SHORT_NAME_INVITE = "InviteSiteShortName";
|
private static final String SITE_SHORT_NAME_INVITE = "InviteSiteShortName";
|
||||||
|
|
||||||
@@ -145,15 +147,14 @@ public class InviteServiceTest extends BaseWebScriptTest
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private JSONObject startInvite(String inviteeEmail, String siteShortName,
|
private JSONObject startInvite(String inviteeFirstName, String inviteeLastName, String inviteeEmail,
|
||||||
int expectedStatus) throws Exception
|
String siteShortName, int expectedStatus) throws Exception
|
||||||
{
|
{
|
||||||
// Inviter sends invitation to Invitee to join a Site
|
// Inviter sends invitation to Invitee to join a Site
|
||||||
String startInviteUrl = URL_INVITE_SERVICE + "/" + INVITE_ACTION_START
|
String startInviteUrl = URL_INVITE_SERVICE + "/" + INVITE_ACTION_START
|
||||||
+ "?inviteeEmail=" + inviteeEmail + "&siteShortName="
|
+ "?inviteeFirstName=" + inviteeFirstName + "&inviteeLastName=" + inviteeLastName
|
||||||
+ siteShortName;
|
+ "&inviteeEmail=" + inviteeEmail + "&siteShortName=" + siteShortName;
|
||||||
MockHttpServletResponse response = getRequest(startInviteUrl,
|
MockHttpServletResponse response = getRequest(startInviteUrl, expectedStatus);
|
||||||
expectedStatus);
|
|
||||||
|
|
||||||
JSONObject result = new JSONObject(response.getContentAsString());
|
JSONObject result = new JSONObject(response.getContentAsString());
|
||||||
|
|
||||||
@@ -222,18 +223,21 @@ public class InviteServiceTest extends BaseWebScriptTest
|
|||||||
|
|
||||||
public void testStartInvite() throws Exception
|
public void testStartInvite() throws Exception
|
||||||
{
|
{
|
||||||
JSONObject result = startInvite(INVITEE_EMAIL, SITE_SHORT_NAME_INVITE,
|
JSONObject result = startInvite(INVITEE_FIRSTNAME, INVITEE_LASTNAME, INVITEE_EMAIL,
|
||||||
Status.STATUS_OK);
|
SITE_SHORT_NAME_INVITE, Status.STATUS_OK);
|
||||||
|
|
||||||
assertEquals(INVITE_ACTION_START, result.get("action"));
|
assertEquals(INVITE_ACTION_START, result.get("action"));
|
||||||
|
assertEquals(INVITEE_FIRSTNAME, result.get("inviteeFirstName"));
|
||||||
|
assertEquals(INVITEE_LASTNAME, result.get("inviteeLastName"));
|
||||||
|
assertEquals(INVITEE_EMAIL, result.get("inviteeEmail"));
|
||||||
assertEquals(SITE_SHORT_NAME_INVITE, result.get("siteShortName"));
|
assertEquals(SITE_SHORT_NAME_INVITE, result.get("siteShortName"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testCancelInvite() throws Exception
|
public void testCancelInvite() throws Exception
|
||||||
{
|
{
|
||||||
// inviter starts invite workflow
|
// inviter starts invite workflow
|
||||||
JSONObject result = startInvite(INVITEE_EMAIL, SITE_SHORT_NAME_INVITE,
|
JSONObject result = startInvite(INVITEE_FIRSTNAME, INVITEE_LASTNAME, INVITEE_EMAIL,
|
||||||
Status.STATUS_OK);
|
SITE_SHORT_NAME_INVITE, Status.STATUS_OK);
|
||||||
|
|
||||||
// get hold of invite ID of started invite
|
// get hold of invite ID of started invite
|
||||||
String inviteId = result.getString("inviteId");
|
String inviteId = result.getString("inviteId");
|
||||||
@@ -248,8 +252,8 @@ public class InviteServiceTest extends BaseWebScriptTest
|
|||||||
public void testAcceptInvite() throws Exception
|
public void testAcceptInvite() throws Exception
|
||||||
{
|
{
|
||||||
// inviter starts invite (sends out invitation)
|
// inviter starts invite (sends out invitation)
|
||||||
JSONObject result = startInvite(INVITEE_EMAIL, SITE_SHORT_NAME_INVITE,
|
JSONObject result = startInvite(INVITEE_FIRSTNAME, INVITEE_LASTNAME, INVITEE_EMAIL,
|
||||||
Status.STATUS_OK);
|
SITE_SHORT_NAME_INVITE, Status.STATUS_OK);
|
||||||
|
|
||||||
// get hold of invite ID of started invite
|
// get hold of invite ID of started invite
|
||||||
String inviteId = result.getString("inviteId");
|
String inviteId = result.getString("inviteId");
|
||||||
@@ -270,8 +274,8 @@ public class InviteServiceTest extends BaseWebScriptTest
|
|||||||
public void testRejectInvite() throws Exception
|
public void testRejectInvite() throws Exception
|
||||||
{
|
{
|
||||||
// inviter starts invite (sends out invitation)
|
// inviter starts invite (sends out invitation)
|
||||||
JSONObject result = startInvite(INVITEE_EMAIL, SITE_SHORT_NAME_INVITE,
|
JSONObject result = startInvite(INVITEE_FIRSTNAME, INVITEE_LASTNAME, INVITEE_EMAIL,
|
||||||
Status.STATUS_OK);
|
SITE_SHORT_NAME_INVITE, Status.STATUS_OK);
|
||||||
|
|
||||||
// get hold of invite ID of started invite
|
// get hold of invite ID of started invite
|
||||||
String inviteId = result.getString("inviteId");
|
String inviteId = result.getString("inviteId");
|
||||||
@@ -292,8 +296,8 @@ public class InviteServiceTest extends BaseWebScriptTest
|
|||||||
public void testGetInvitesByInviteId() throws Exception
|
public void testGetInvitesByInviteId() throws Exception
|
||||||
{
|
{
|
||||||
// inviter starts invite workflow
|
// inviter starts invite workflow
|
||||||
JSONObject startInviteResult = startInvite(INVITEE_EMAIL, SITE_SHORT_NAME_INVITE,
|
JSONObject startInviteResult = startInvite(INVITEE_FIRSTNAME, INVITEE_LASTNAME, INVITEE_EMAIL,
|
||||||
Status.STATUS_OK);
|
SITE_SHORT_NAME_INVITE, Status.STATUS_OK);
|
||||||
|
|
||||||
// get hold of workflow ID of started invite workflow instance
|
// get hold of workflow ID of started invite workflow instance
|
||||||
|
|
||||||
@@ -314,8 +318,8 @@ public class InviteServiceTest extends BaseWebScriptTest
|
|||||||
public void testGetInvitesByInviterUserName() throws Exception
|
public void testGetInvitesByInviterUserName() throws Exception
|
||||||
{
|
{
|
||||||
// inviter starts invite workflow
|
// inviter starts invite workflow
|
||||||
JSONObject startInviteResult = startInvite(INVITEE_EMAIL, SITE_SHORT_NAME_INVITE,
|
JSONObject startInviteResult = startInvite(INVITEE_FIRSTNAME, INVITEE_LASTNAME, INVITEE_EMAIL,
|
||||||
Status.STATUS_OK);
|
SITE_SHORT_NAME_INVITE, Status.STATUS_OK);
|
||||||
|
|
||||||
// get pending invites matching inviter user name used in invite started above
|
// get pending invites matching inviter user name used in invite started above
|
||||||
JSONArray getInvitesResult = getInvitesByInviterUserName(USER_INVITER, Status.STATUS_OK);
|
JSONArray getInvitesResult = getInvitesByInviterUserName(USER_INVITER, Status.STATUS_OK);
|
||||||
@@ -330,8 +334,8 @@ public class InviteServiceTest extends BaseWebScriptTest
|
|||||||
public void testGetInvitesByInviteeUserName() throws Exception
|
public void testGetInvitesByInviteeUserName() throws Exception
|
||||||
{
|
{
|
||||||
// inviter starts invite workflow
|
// inviter starts invite workflow
|
||||||
JSONObject startInviteResult = startInvite(INVITEE_EMAIL, SITE_SHORT_NAME_INVITE,
|
JSONObject startInviteResult = startInvite(INVITEE_FIRSTNAME, INVITEE_LASTNAME, INVITEE_EMAIL,
|
||||||
Status.STATUS_OK);
|
SITE_SHORT_NAME_INVITE, Status.STATUS_OK);
|
||||||
|
|
||||||
// get hold of invitee user name property of started invite workflow instance
|
// get hold of invitee user name property of started invite workflow instance
|
||||||
String inviteeUserName = startInviteResult.getString("inviteeUserName");
|
String inviteeUserName = startInviteResult.getString("inviteeUserName");
|
||||||
@@ -351,8 +355,8 @@ public class InviteServiceTest extends BaseWebScriptTest
|
|||||||
public void testGetInvitesBySiteShortName() throws Exception
|
public void testGetInvitesBySiteShortName() throws Exception
|
||||||
{
|
{
|
||||||
// inviter starts invite workflow
|
// inviter starts invite workflow
|
||||||
JSONObject startInviteResult = startInvite(INVITEE_EMAIL, SITE_SHORT_NAME_INVITE,
|
JSONObject startInviteResult = startInvite(INVITEE_FIRSTNAME, INVITEE_LASTNAME, INVITEE_EMAIL,
|
||||||
Status.STATUS_OK);
|
SITE_SHORT_NAME_INVITE, Status.STATUS_OK);
|
||||||
|
|
||||||
// get hold of site short name property of started invite workflow instance
|
// get hold of site short name property of started invite workflow instance
|
||||||
String siteShortName = startInviteResult.getString("siteShortName");
|
String siteShortName = startInviteResult.getString("siteShortName");
|
||||||
|
Reference in New Issue
Block a user