From 71cdbe8445928594d65e5f3bb3af169d58a99178 Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Wed, 2 Apr 2014 21:48:02 +0000 Subject: [PATCH] Merged HEAD-BUG-FIX (4.3/Cloud) to HEAD (4.3/Cloud) 65592: Merged V4.2-BUG-FIX (4.2.2) to HEAD-BUG-FIX (4.3/Cloud) 65434: Merged DEV to V4.2-BUG-FIX (4.2.2) 65008 : MNT-10551 : PUT sites//members/ - Throw InvalidArgumentException if the person is not site member 65046 : MNT-10551 : PUT sites//members/ - Test for the fix git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@66246 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../java/org/alfresco/rest/api/impl/SitesImpl.java | 6 ++++++ .../org/alfresco/rest/api/tests/TestSiteMembers.java | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/source/java/org/alfresco/rest/api/impl/SitesImpl.java b/source/java/org/alfresco/rest/api/impl/SitesImpl.java index 0c114e64d8..1ccdb8af23 100644 --- a/source/java/org/alfresco/rest/api/impl/SitesImpl.java +++ b/source/java/org/alfresco/rest/api/impl/SitesImpl.java @@ -406,6 +406,12 @@ public class SitesImpl implements Sites throw new InvalidArgumentException("Must provide a role"); } + /* MNT-10551 : fix */ + if (!siteService.isMember(siteId, siteMember.getPersonId())) + { + throw new InvalidArgumentException("User is not a member of the site"); + } + siteService.setMembership(siteId, siteMember.getPersonId(), siteRole.toString()); return siteMember; } diff --git a/source/test-java/org/alfresco/rest/api/tests/TestSiteMembers.java b/source/test-java/org/alfresco/rest/api/tests/TestSiteMembers.java index 5b03fd7652..99f1cd0531 100644 --- a/source/test-java/org/alfresco/rest/api/tests/TestSiteMembers.java +++ b/source/test-java/org/alfresco/rest/api/tests/TestSiteMembers.java @@ -500,6 +500,18 @@ public class TestSiteMembers extends EnterpriseTestApi { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } + + // user is not a member of the site - 400 + try + { + publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); + sitesProxy.updateSiteMember(site.getSiteId(), new SiteMember(person1.getId(), SiteRole.SiteContributor.toString())); + fail(); + } + catch(PublicApiException e) + { + assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); + } // successful update {