Compare commits

...

3 Commits

Author SHA1 Message Date
Travis CI User
829c7ef65d [maven-release-plugin][skip ci] prepare release v1.52 2021-02-01 10:33:20 +00:00
dhrn
0d40d455b2 [REPO-5317] expose site groups apis (#112)
* [REPO-5317] expose site groups method

* Update Site.java

* Update JsonBodyGenerator.java
2021-02-01 10:20:23 +00:00
Travis CI User
3d91bf154d [maven-release-plugin][skip ci] prepare for next development iteration 2021-01-04 22:59:11 +00:00
5 changed files with 187 additions and 2 deletions

View File

@@ -4,7 +4,7 @@
<groupId>org.alfresco.tas</groupId> <groupId>org.alfresco.tas</groupId>
<artifactId>restapi</artifactId> <artifactId>restapi</artifactId>
<name>alfresco-tas-restapi</name> <name>alfresco-tas-restapi</name>
<version>1.51</version> <version>1.52</version>
<parent> <parent>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<artifactId>alfresco-super-pom</artifactId> <artifactId>alfresco-super-pom</artifactId>
@@ -48,7 +48,7 @@
<connection>scm:git:https://github.com/Alfresco/alfresco-tas-restapi.git</connection> <connection>scm:git:https://github.com/Alfresco/alfresco-tas-restapi.git</connection>
<developerConnection>scm:git:https://github.com/Alfresco/alfresco-tas-restapi.git</developerConnection> <developerConnection>scm:git:https://github.com/Alfresco/alfresco-tas-restapi.git</developerConnection>
<url>https://github.com/Alfresco/alfresco-tas-restapi</url> <url>https://github.com/Alfresco/alfresco-tas-restapi</url>
<tag>v1.51</tag> <tag>v1.52</tag>
</scm> </scm>
<issueManagement> <issueManagement>

View File

@@ -13,6 +13,7 @@ import org.alfresco.dataprep.CMISUtil.Priority;
import org.alfresco.rest.model.RestProcessVariableModel; import org.alfresco.rest.model.RestProcessVariableModel;
import org.alfresco.rest.model.RestVariableModel; import org.alfresco.rest.model.RestVariableModel;
import org.alfresco.utility.Utility; import org.alfresco.utility.Utility;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.model.FileModel; import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.FolderModel; import org.alfresco.utility.model.FolderModel;
import org.alfresco.utility.model.RepoTestModel; import org.alfresco.utility.model.RepoTestModel;
@@ -158,6 +159,15 @@ public class JsonBodyGenerator
return value.toString(); return value.toString();
} }
public static String siteGroup(String authorityId, UserRole role)
{
Utility.checkObjectIsInitialized(authorityId, "authorityId");
JsonObject value = defineJSON()
.add("role", role.name())
.add("id", authorityId).build();
return value.toString();
}
public static String siteMemberhipRequest(String message, SiteModel siteModel, String title) public static String siteMemberhipRequest(String message, SiteModel siteModel, String title)
{ {
JsonObject value = defineJSON() JsonObject value = defineJSON()

View File

@@ -0,0 +1,78 @@
package org.alfresco.rest.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.alfresco.rest.core.IRestModel;
import org.alfresco.rest.core.assertion.ModelAssertion;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.model.TestModel;
import org.testng.Assert;
import static org.alfresco.utility.report.log.Step.STEP;
public class RestSiteGroupModel extends TestModel implements IRestModel<RestSiteGroupModel>
{
@JsonProperty(value = "entry")
RestSiteGroupModel model;
@Override
public RestSiteGroupModel onModel()
{
return model;
}
private UserRole role;
private String id = "no-id";
private RestGroupsModel group;
public UserRole getRole()
{
return role;
}
public void setRole(UserRole role)
{
this.role = role;
}
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public RestGroupsModel getGroup()
{
return group;
}
public void setGroup(RestGroupsModel group)
{
this.group = group;
}
public RestSiteGroupModel assertSiteGroupHasRole(UserRole role) {
STEP(String.format("REST API: Assert that site group role is '%s'", role));
Assert.assertEquals(getRole(), role, "Site group role is not as expected.");
return this;
}
/**
* DSL for assertion on this rest model
* @return
*/
@Override
public ModelAssertion<RestSiteGroupModel> assertThat()
{
return new ModelAssertion<RestSiteGroupModel>(this);
}
@Override
public ModelAssertion<RestSiteGroupModel> and()
{
return assertThat();
}
}

View File

@@ -0,0 +1,32 @@
package org.alfresco.rest.model;
import org.alfresco.rest.core.RestModels;
import java.util.List;
import static org.alfresco.utility.report.log.Step.STEP;
public class RestSiteGroupModelsCollection extends RestModels<RestSiteGroupModel, RestSiteGroupModelsCollection>
{
/**
* Get groups from site groups list
*/
public RestSiteGroupModel getSiteGroups(String groupId)
{
STEP(String.format("REST API: Get site group with id '%s'", groupId));
RestSiteGroupModel siteGroupEntry = null;
List<RestSiteGroupModel> siteGroups = getEntries();
for (int i = 1; i < siteGroups.size(); i++)
{
if (siteGroups.get(i).onModel().getId().equals(groupId))
{
siteGroupEntry = siteGroups.get(i).onModel();
}
}
return siteGroupEntry;
}
}

View File

@@ -11,9 +11,12 @@ import org.alfresco.rest.model.RestSiteContainerModel;
import org.alfresco.rest.model.RestSiteContainerModelsCollection; import org.alfresco.rest.model.RestSiteContainerModelsCollection;
import org.alfresco.rest.model.RestSiteMemberModel; import org.alfresco.rest.model.RestSiteMemberModel;
import org.alfresco.rest.model.RestSiteMemberModelsCollection; import org.alfresco.rest.model.RestSiteMemberModelsCollection;
import org.alfresco.rest.model.RestSiteGroupModel;
import org.alfresco.rest.model.RestSiteGroupModelsCollection;
import org.alfresco.rest.model.RestSiteModel; import org.alfresco.rest.model.RestSiteModel;
import org.alfresco.rest.model.RestSiteModelsCollection; import org.alfresco.rest.model.RestSiteModelsCollection;
import org.alfresco.rest.model.RestSitePersonMembershipRequestModelsCollection; import org.alfresco.rest.model.RestSitePersonMembershipRequestModelsCollection;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.model.SiteModel; import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.UserModel; import org.alfresco.utility.model.UserModel;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
@@ -257,4 +260,66 @@ public class Site extends ModelRequest<Site>
RestRequest request = RestRequest.simpleRequest(HttpMethod.POST, "sites/{siteId}/site-membership-requests/{inviteeId}/reject", site.getId(), siteMember.getUsername()); RestRequest request = RestRequest.simpleRequest(HttpMethod.POST, "sites/{siteId}/site-membership-requests/{inviteeId}/reject", site.getId(), siteMember.getUsername());
return restWrapper.process(request); return restWrapper.process(request);
} }
/**
* Retrieve all group membership of a site using GET call on "sites/{siteId}/group-members"
*
* @return RestSiteGroupModelsCollection
* @throws JsonToModelConversionException
*/
public RestSiteGroupModelsCollection getSiteGroups()
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites/{siteId}/group-members?{parameters}", site.getId(), restWrapper.getParameters());
return restWrapper.processModels(RestSiteGroupModelsCollection.class, request);
}
/**
* Add new site group membership using POST call on "sites/{siteId}/group-members"
*
* @param authorityId The authorityId of the group
* @param role role to assign
* @return
* @throws JsonToModelConversionException
*/
public RestSiteGroupModel addSiteGroup(String authorityId, UserRole role)
{
String siteMemberBody = JsonBodyGenerator.siteGroup(authorityId, role);
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, siteMemberBody, "sites/{siteId}/group-members?{parameters}", site.getId(), restWrapper.getParameters());
return restWrapper.processModel(RestSiteGroupModel.class, request);
}
/**
* Retrieve specific group membership of a site using GET call on "sites/{siteId}/group-members/{groupId}"
*
* @param groupId
* @return RestSiteGroupModel
*/
public RestSiteGroupModel getSiteGroup(String groupId)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "sites/{siteId}/group-members/{groupId}", site.getId(), groupId);
return restWrapper.processModel(RestSiteGroupModel.class, request);
}
/**
* Update site group membership role with PUT call on "sites/{siteId}/group-members/{groupId}"
* @param groupId
* @return RestSiteGroupModel
* @throws JsonToModelConversionException
*/
public RestSiteGroupModel updateSiteGroup(String groupId, UserRole role)
{
String json = JsonBodyGenerator.keyValueJson("role", role.toString());
RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, json, "sites/{siteId}/group-members/{groupId}", site.getId(), groupId);
return restWrapper.processModel(RestSiteGroupModel.class, request);
}
/**
* Delete site group membership with DELETE call on "sites/{siteId}/group-members/{groupId}"
* @param groupId
*/
public void deleteSiteGroup(String groupId)
{
RestRequest request = RestRequest.simpleRequest(HttpMethod.DELETE, "sites/{siteId}/group-members/{groupId}", site.getId(), groupId);
restWrapper.processEmptyModel(request);
}
} }