diff --git a/source/java/org/alfresco/repo/web/scripts/invite/InviteResponse.java b/source/java/org/alfresco/repo/web/scripts/invite/InviteResponse.java index 4f28205cf6..c3d8a230fe 100644 --- a/source/java/org/alfresco/repo/web/scripts/invite/InviteResponse.java +++ b/source/java/org/alfresco/repo/web/scripts/invite/InviteResponse.java @@ -134,6 +134,9 @@ public class InviteResponse extends DeclarativeWebScript String inviteId = req.getServiceMatch().getTemplateVars().get("inviteId"); String inviteTicket = req.getServiceMatch().getTemplateVars().get("inviteTicket"); + // Check that the task is still open. + //if(inviteStart) + // process response String action = req.getServiceMatch().getTemplateVars().get("action"); if (action.equals("accept")) @@ -149,6 +152,10 @@ public class InviteResponse extends DeclarativeWebScript { throw new WebScriptException(Status.STATUS_FORBIDDEN, fe.toString()); } + catch (InvitationExceptionUserError fe) + { + throw new WebScriptException(Status.STATUS_CONFLICT, fe.toString()); + } } else if (action.equals("reject")) { @@ -162,7 +169,11 @@ public class InviteResponse extends DeclarativeWebScript catch (InvitationExceptionForbidden fe) { throw new WebScriptException(Status.STATUS_FORBIDDEN, fe.toString()); - } + } + catch (InvitationExceptionUserError fe) + { + throw new WebScriptException(Status.STATUS_CONFLICT, fe.toString()); + } } else { diff --git a/source/java/org/alfresco/repo/web/scripts/invite/InviteServiceTest.java b/source/java/org/alfresco/repo/web/scripts/invite/InviteServiceTest.java index 80ab34ba89..7e574c75ff 100644 --- a/source/java/org/alfresco/repo/web/scripts/invite/InviteServiceTest.java +++ b/source/java/org/alfresco/repo/web/scripts/invite/InviteServiceTest.java @@ -582,6 +582,13 @@ public class InviteServiceTest extends BaseWebScriptTest // Invitee accepts invitation to a Site from Inviter String acceptInviteUrl = URL_INVITE + "/" + inviteId + "/" + inviteTicket + "/accept"; sendRequest(new PutRequest(acceptInviteUrl, (byte[])null, null), Status.STATUS_OK); + + // Invitee attempts to accept the invitation again + sendRequest(new PutRequest(acceptInviteUrl, (byte[])null, null), Status.STATUS_CONFLICT); + + // Invitee attempts to reject an invitation that has already been accepted. + rejectInvite(inviteId, inviteTicket, Status.STATUS_CONFLICT); + // // test that invitation represented by invite ID (of invitation started @@ -610,6 +617,9 @@ public class InviteServiceTest extends BaseWebScriptTest String inviteTicket = result.getString("inviteTicket"); rejectInvite(inviteId, inviteTicket, Status.STATUS_OK); + + // Negative test + rejectInvite(inviteId, inviteTicket, Status.STATUS_CONFLICT); // // test that invite represented by invite ID (of invitation started @@ -624,6 +634,8 @@ public class InviteServiceTest extends BaseWebScriptTest // there should no longer be any invites identified by invite ID pending // assertEquals(0, getInvitesResult.getJSONArray("invites").length()); + + } public void testGetInvitesByInviteId() throws Exception