diff --git a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/core/RMRestWrapper.java b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/core/RMRestWrapper.java
index 7a529e0633..f61fe3c751 100644
--- a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/core/RMRestWrapper.java
+++ b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/core/RMRestWrapper.java
@@ -24,6 +24,7 @@
* along with Alfresco. If not, see .
* #L%
*/
+
package org.alfresco.rest.core;
import com.jayway.restassured.builder.RequestSpecBuilder;
@@ -34,6 +35,7 @@ import org.alfresco.rest.model.RestHtmlResponse;
import org.alfresco.rest.model.RestSiteModel;
import org.alfresco.rest.model.RestSiteModelsCollection;
import org.alfresco.rest.requests.coreAPI.RestCoreAPI;
+import org.alfresco.rest.requests.search.SearchAPI;
import org.alfresco.rest.rm.community.requests.gscore.GSCoreAPI;
import org.alfresco.utility.model.StatusModel;
import org.alfresco.utility.model.UserModel;
@@ -145,16 +147,24 @@ public class RMRestWrapper
return restWrapper.withCoreAPI();
}
+ /** Get the Alfresco Search API. */
+ public SearchAPI withSearchAPI()
+ {
+ return restWrapper.withSearchAPI();
+ }
+
/**
- * You can handle the request sent to server by calling this method.
- * If for example you want to sent multipart form data you can use:
- * restClient.configureRequestSpec()
- * .addMultiPart("filedata", Utility.getResourceTestDataFile("restapi-resource"))
- * .addFormParam("renditions", "doclib")
- * .addFormParam("autoRename", true);
+ * You can handle the request sent to server by calling this method. If for example you want to sent multipart form
+ * data you can use:
+ *
+ *
+ * restClient.configureRequestSpec().addMultiPart("filedata", Utility.getResourceTestDataFile("restapi-resource"))
+ * .addFormParam("renditions", "doclib").addFormParam("autoRename", true);
*
* restClient.withCoreAPI().usingNode(ContentModel.my()).createNode();
- *
This will create the node using the multipart data defined.
+ *
+ *
+ * This will create the node using the multipart data defined.
*/
public RequestSpecBuilder configureRequestSpec()
{
diff --git a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/core/RestAPIFactory.java b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/core/RestAPIFactory.java
index 710413fa33..bdbabe6eb2 100644
--- a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/core/RestAPIFactory.java
+++ b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/core/RestAPIFactory.java
@@ -24,6 +24,7 @@
* along with Alfresco. If not, see .
* #L%
*/
+
package org.alfresco.rest.core;
import static lombok.AccessLevel.PROTECTED;
@@ -32,6 +33,7 @@ import javax.annotation.Resource;
import org.alfresco.rest.requests.Node;
import org.alfresco.rest.requests.coreAPI.RestCoreAPI;
+import org.alfresco.rest.requests.search.SearchAPI;
import org.alfresco.rest.rm.community.requests.gscore.GSCoreAPI;
import org.alfresco.rest.rm.community.requests.gscore.api.FilePlanAPI;
import org.alfresco.rest.rm.community.requests.gscore.api.FilesAPI;
@@ -65,7 +67,7 @@ import lombok.Setter;
public class RestAPIFactory
{
@Autowired
- @Getter (value = PROTECTED)
+ @Getter(value = PROTECTED)
private DataUser dataUser;
@Resource(name = "RMRestWrapper")
@@ -85,6 +87,12 @@ public class RestAPIFactory
return getRmRestWrapper().withCoreAPI();
}
+ private SearchAPI getSearchAPI(UserModel userModel)
+ {
+ getRmRestWrapper().authenticateUser(userModel != null ? userModel : getDataUser().getAdminUser());
+ return getRmRestWrapper().withSearchAPI();
+ }
+
public Node getNodeAPI(RepoTestModel model) throws Exception
{
return getCoreAPI(null).usingNode(model);
diff --git a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/SearchAPI.java b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/SearchAPI.java
index 7bcfff7d48..a465fc5c90 100644
--- a/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/SearchAPI.java
+++ b/rm-automation/rm-automation-community-rest-api/src/main/java/org/alfresco/rest/v0/SearchAPI.java
@@ -24,6 +24,7 @@
* along with Alfresco. If not, see .
* #L%
*/
+
package org.alfresco.rest.v0;
import java.text.MessageFormat;
@@ -50,7 +51,8 @@ import org.springframework.stereotype.Component;
public class SearchAPI extends BaseAPI
{
/** http client factory */
- @Autowired private AlfrescoHttpClientFactory alfrescoHttpClientFactory;
+ @Autowired
+ private AlfrescoHttpClientFactory alfrescoHttpClientFactory;
/** faceted search API endpoint */
private static final String FACETED_SEARCH_ENDPOINT = "{0}alfresco/s/slingshot/rmsearch/faceted/rmsearch?{1}";
@@ -59,28 +61,26 @@ public class SearchAPI extends BaseAPI
private static final String RM_SEARCH_ENDPOINT = "{0}alfresco/s/slingshot/rmsearch/{1}?{2}";
/** RM document search filters */
- private static final String RM_DEFAULT_RECORD_FILTERS =
- "records/true,undeclared/true,vital/false,folders/false,categories/false,frozen/false,cutoff/false";
+ private static final String RM_DEFAULT_RECORD_FILTERS = "records/true,undeclared/true,vital/false,folders/false,categories/false,frozen/false,cutoff/false";
/**
* Perform search request on search endpoint as a user.
*
* This method is applicable only to endpoints that support HTTP GET requests and return JSON body as response.
+ *
* @param searchEndpoint
* @param searchUser
* @param searchPassword
* @return search results as a {@link JSONObject}, please refer to API documentation for details
*/
- private JSONObject doSearch(
- String searchEndpoint,
- String searchUser,
- String searchPassword)
+ private JSONObject doSearch(String searchEndpoint, String searchUser, String searchPassword)
{
- return facetedRequest(searchUser, searchPassword, null, searchEndpoint);
+ return facetedRequest(searchUser, searchPassword, null, searchEndpoint);
}
/**
* Generic rm search.
+ *
* @param username
* @param password
* @param site
@@ -88,45 +88,36 @@ public class SearchAPI extends BaseAPI
* @param filters
* @return search results (see API reference for more details), null for any errors
*/
- public JSONObject rmSearch(
- String username,
- String password,
- String site,
- String query,
- String filters)
+ public JSONObject rmSearch(String username, String password, String site, String query, String filters)
{
List searchParameters = new ArrayList();
searchParameters.add(new BasicNameValuePair("query", query));
searchParameters.add(new BasicNameValuePair("filters", filters));
- String requestURL = MessageFormat.format(
- RM_SEARCH_ENDPOINT,
- alfrescoHttpClientFactory.getObject().getAlfrescoUrl(),
- (site != null) ? site : RM_SITE_ID,
- URLEncodedUtils.format(searchParameters, "UTF-8"));
+ String requestURL = MessageFormat.format(RM_SEARCH_ENDPOINT,
+ alfrescoHttpClientFactory.getObject().getAlfrescoUrl(), (site != null) ? site : RM_SITE_ID,
+ URLEncodedUtils.format(searchParameters, "UTF-8"));
return doSearch(requestURL, username, password);
}
/**
- * Search as a user for records on site "rm" matching query, using SearchAPI.RM_DEFAULT_RECORD_FILTERS
- *
+ * Search as a user for records on site "rm" matching query, using SearchAPI.RM_DEFAULT_RECORD_FILTERS
* If more fine-grained control of search parameters is required, use rmSearch() directly.
+ *
* @param username
* @param password
* @param query
* @return list of record names
*/
- public List searchForRecordsAsUser(
- String username,
- String password,
- String query)
+ public List searchForRecordsAsUser(String username, String password, String query)
{
return getItemNames(rmSearch(username, password, "rm", query, RM_DEFAULT_RECORD_FILTERS));
}
/**
* Generic faceted search.
+ *
* @param username
* @param password
* @param parameters
@@ -139,6 +130,7 @@ public class SearchAPI extends BaseAPI
/**
* Execute faceted search for term.
+ *
* @param searchUser
* @param searchPassword
* @param searchTerm
@@ -146,14 +138,12 @@ public class SearchAPI extends BaseAPI
*/
public JSONObject facetedSearchForTerm(String searchUser, String searchPassword, String searchTerm)
{
- return facetedSearch(
- searchUser,
- searchPassword,
- Arrays.asList(new BasicNameValuePair("term", searchTerm)));
+ return facetedSearch(searchUser, searchPassword, Arrays.asList(new BasicNameValuePair("term", searchTerm)));
}
/**
* Helper method to search for documents as a user using faceted search.
+ *
* @param username to search as
* @param password for username
* @param term search term
@@ -166,6 +156,7 @@ public class SearchAPI extends BaseAPI
/**
* Helper method to extract list of names from search result.
+ *
* @param searchResult
* @return list of document or record names in search result
* @throws RuntimeException for malformed search response
diff --git a/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/base/BaseRMRestTest.java b/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/base/BaseRMRestTest.java
index 38d4b2959d..5dee146514 100644
--- a/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/base/BaseRMRestTest.java
+++ b/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/base/BaseRMRestTest.java
@@ -24,6 +24,7 @@
* along with Alfresco. If not, see .
* #L%
*/
+
package org.alfresco.rest.rm.community.base;
import static lombok.AccessLevel.PROTECTED;
@@ -33,11 +34,14 @@ import static org.alfresco.rest.rm.community.base.TestData.RECORD_CATEGORY_TITLE
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentAlias.FILE_PLAN_ALIAS;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentAlias.UNFILED_RECORDS_CONTAINER_ALIAS;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentAspects.ASPECTS_COMPLETED_RECORD;
+import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.CONTENT_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.RECORD_CATEGORY_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.RECORD_FOLDER_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.RECORD_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.UNFILED_CONTAINER_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.UNFILED_RECORD_FOLDER_TYPE;
+import static org.alfresco.rest.rm.community.model.user.UserPermissions.PERMISSION_FILING;
+import static org.alfresco.rest.rm.community.model.user.UserRoles.ROLE_RM_USER;
import static org.alfresco.rest.rm.community.utils.FilePlanComponentsUtil.createRecordCategoryChildModel;
import static org.alfresco.rest.rm.community.utils.FilePlanComponentsUtil.createRecordCategoryModel;
import static org.alfresco.rest.rm.community.utils.FilePlanComponentsUtil.createTempFile;
@@ -51,6 +55,7 @@ import static org.testng.Assert.assertTrue;
import java.util.List;
+import org.alfresco.dataprep.ContentService;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.core.RestAPIFactory;
import org.alfresco.rest.rm.community.model.fileplan.FilePlan;
@@ -65,8 +70,12 @@ import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainer;
import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChild;
import org.alfresco.rest.rm.community.requests.gscore.api.RMSiteAPI;
import org.alfresco.rest.rm.community.requests.gscore.api.RecordCategoryAPI;
+import org.alfresco.rest.rm.community.requests.gscore.api.RecordFolderAPI;
import org.alfresco.rest.rm.community.requests.gscore.api.RecordsAPI;
+import org.alfresco.rest.v0.RMRolesAndActionsAPI;
import org.alfresco.utility.data.DataUser;
+import org.alfresco.utility.model.FolderModel;
+import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.UserModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
@@ -85,13 +94,21 @@ import lombok.Getter;
public class BaseRMRestTest extends RestTest
{
@Autowired
- @Getter (value = PROTECTED)
+ @Getter(value = PROTECTED)
private RestAPIFactory restAPIFactory;
@Autowired
- @Getter (value = PROTECTED)
+ @Getter(value = PROTECTED)
private DataUser dataUser;
+ @Autowired
+ @Getter(value = PROTECTED)
+ private ContentService contentService;
+
+ @Autowired
+ @Getter(value = PROTECTED)
+ private RMRolesAndActionsAPI rmRolesAndActionsAPI;
+
/**
* Asserts the given status code
*
@@ -116,22 +133,22 @@ public class BaseRMRestTest extends RestTest
@DataProvider(name = "validRootContainers")
public String[][] getValidRootContainers() throws Exception
{
- return new String[][]
- {
- // an arbitrary record folder
- { createCategoryFolderInFilePlan().getId(), RECORD_FOLDER_TYPE},
- // unfiled records root
- { UNFILED_RECORDS_CONTAINER_ALIAS, UNFILED_CONTAINER_TYPE},
- // an arbitrary unfiled records folder
- { createUnfiledContainerChild(UNFILED_RECORDS_CONTAINER_ALIAS, "Unfiled Folder " + getRandomAlphanumeric(), UNFILED_RECORD_FOLDER_TYPE).getId(), UNFILED_RECORD_FOLDER_TYPE }
- };
+ return new String[][] {
+ // an arbitrary record folder
+ { createCategoryFolderInFilePlan().getId(), RECORD_FOLDER_TYPE },
+ // unfiled records root
+ { UNFILED_RECORDS_CONTAINER_ALIAS, UNFILED_CONTAINER_TYPE },
+ // an arbitrary unfiled records folder
+ { createUnfiledContainerChild(UNFILED_RECORDS_CONTAINER_ALIAS,
+ "Unfiled Folder " + getRandomAlphanumeric(), UNFILED_RECORD_FOLDER_TYPE).getId(),
+ UNFILED_RECORD_FOLDER_TYPE } };
}
/**
* @see org.alfresco.rest.RestTest#checkServerHealth()
*/
@Override
- @BeforeClass (alwaysRun = true)
+ @BeforeClass(alwaysRun = true)
public void checkServerHealth() throws Exception
{
// Create RM Site if not exist
@@ -139,8 +156,7 @@ public class BaseRMRestTest extends RestTest
}
/**
- * Helper method to create the RM Site via the POST request
- * if the site doesn't exist
+ * Helper method to create the RM Site via the POST request if the site doesn't exist
*/
public void createRMSiteIfNotExists() throws Exception
{
@@ -204,10 +220,12 @@ public class BaseRMRestTest extends RestTest
* @return The created category
* @throws Exception on unsuccessful component creation
*/
- public RecordCategory createRootCategory(UserModel userModel, String categoryName, String categoryTitle) throws Exception
+ public RecordCategory createRootCategory(UserModel userModel, String categoryName, String categoryTitle)
+ throws Exception
{
RecordCategory recordCategoryModel = createRecordCategoryModel(categoryName, categoryTitle);
- return getRestAPIFactory().getFilePlansAPI(userModel).createRootRecordCategory(recordCategoryModel, FILE_PLAN_ALIAS);
+ return getRestAPIFactory().getFilePlansAPI(userModel).createRootRecordCategory(recordCategoryModel,
+ FILE_PLAN_ALIAS);
}
/**
@@ -220,10 +238,12 @@ public class BaseRMRestTest extends RestTest
* @return The created {@link RecordCategoryChild}
* @throws Exception {@link RecordCategoryAPI#createRecordCategoryChild(RecordCategoryChild, String)}
*/
- public RecordCategoryChild createRecordCategoryChild(UserModel user, String recordCategoryId, String name, String type) throws Exception
+ public RecordCategoryChild createRecordCategoryChild(UserModel user, String recordCategoryId, String name,
+ String type) throws Exception
{
RecordCategoryChild recordCategoryChildModel = createRecordCategoryChildModel(name, type);
- return getRestAPIFactory().getRecordCategoryAPI(user).createRecordCategoryChild(recordCategoryChildModel, recordCategoryId);
+ return getRestAPIFactory().getRecordCategoryAPI(user).createRecordCategoryChild(recordCategoryChildModel,
+ recordCategoryId);
}
/**
@@ -235,7 +255,8 @@ public class BaseRMRestTest extends RestTest
* @return The created {@link RecordCategoryChild}
* @throws Exception {@link RecordCategoryAPI#createRecordCategoryChild(RecordCategoryChild, String)}
*/
- public RecordCategoryChild createRecordCategoryChild(String recordCategoryId, String name, String type) throws Exception
+ public RecordCategoryChild createRecordCategoryChild(String recordCategoryId, String name, String type)
+ throws Exception
{
return createRecordCategoryChild(getAdminUser(), recordCategoryId, name, type);
}
@@ -278,7 +299,8 @@ public class BaseRMRestTest extends RestTest
public RecordCategoryChild createFolder(UserModel user, String recordCategoryId, String name) throws Exception
{
RecordCategoryChild recordFolderModel = createRecordCategoryChildModel(name, RECORD_FOLDER_TYPE);
- return getRestAPIFactory().getRecordCategoryAPI(user).createRecordCategoryChild(recordFolderModel, recordCategoryId);
+ return getRestAPIFactory().getRecordCategoryAPI(user).createRecordCategoryChild(recordFolderModel,
+ recordCategoryId);
}
/**
@@ -297,16 +319,18 @@ public class BaseRMRestTest extends RestTest
/**
* Helper method to create child unfiled record folder
*
- *@param user The user under whose privileges this structure is going to be created
+ * @param user The user under whose privileges this structure is going to be created
* @param parentId The id of the parent folder
* @param nodeType The child type
* @return The created folder
* @throws Exception on unsuccessful component creation
*/
- public UnfiledContainerChild createUnfiledRecordsFolderChild(UserModel user, String parentId, String childName, String nodeType) throws Exception
+ public UnfiledContainerChild createUnfiledRecordsFolderChild(UserModel user, String parentId, String childName,
+ String nodeType) throws Exception
{
UnfiledContainerChild childModel = createUnfiledContainerChildModel(childName, nodeType);
- UnfiledContainerChild child = getRestAPIFactory().getUnfiledRecordFoldersAPI(user).createUnfiledRecordFolderChild(childModel, parentId);
+ UnfiledContainerChild child = getRestAPIFactory().getUnfiledRecordFoldersAPI(user)
+ .createUnfiledRecordFolderChild(childModel, parentId);
assertStatusCode(CREATED);
return child;
@@ -320,7 +344,8 @@ public class BaseRMRestTest extends RestTest
* @return The created folder
* @throws Exception on unsuccessful component creation
*/
- public UnfiledContainerChild createUnfiledRecordsFolderChild(String parentId, String childName, String nodeType) throws Exception
+ public UnfiledContainerChild createUnfiledRecordsFolderChild(String parentId, String childName, String nodeType)
+ throws Exception
{
return createUnfiledRecordsFolderChild(getAdminUser(), parentId, childName, nodeType);
}
@@ -335,14 +360,16 @@ public class BaseRMRestTest extends RestTest
* @return The created chid
* @throws Exception on unsuccessful child creation
*/
- public UnfiledContainerChild createUnfiledContainerChild(UserModel user, String parentId, String childName, String nodeType) throws Exception
+ public UnfiledContainerChild createUnfiledContainerChild(UserModel user, String parentId, String childName,
+ String nodeType) throws Exception
{
UnfiledContainerChild child = null;
UnfiledContainerChild childModel = createUnfiledContainerChildModel(childName, nodeType);
if (FilePlanComponentType.CONTENT_TYPE.equals(nodeType))
{
- child = getRestAPIFactory().getUnfiledContainersAPI(user).uploadRecord(childModel, parentId, createTempFile(ELECTRONIC_RECORD_NAME, ELECTRONIC_RECORD_NAME));
+ child = getRestAPIFactory().getUnfiledContainersAPI(user).uploadRecord(childModel, parentId,
+ createTempFile(ELECTRONIC_RECORD_NAME, ELECTRONIC_RECORD_NAME));
}
else
{
@@ -362,7 +389,8 @@ public class BaseRMRestTest extends RestTest
* @return The created chid
* @throws Exception on unsuccessful child creation
*/
- public UnfiledContainerChild createUnfiledContainerChild(String parentId, String childName, String nodeType) throws Exception
+ public UnfiledContainerChild createUnfiledContainerChild(String parentId, String childName, String nodeType)
+ throws Exception
{
return createUnfiledContainerChild(getAdminUser(), parentId, childName, nodeType);
}
@@ -377,11 +405,9 @@ public class BaseRMRestTest extends RestTest
protected RecordFolder closeFolder(String folderId) throws Exception
{
RecordFolder recordFolderModel = RecordFolder.builder()
- .properties(RecordFolderProperties.builder()
- .isClosed(true)
- .build())
- .build();
- RecordFolder updateRecordFolder = getRestAPIFactory().getRecordFolderAPI().updateRecordFolder(recordFolderModel, folderId);
+ .properties(RecordFolderProperties.builder().isClosed(true).build()).build();
+ RecordFolder updateRecordFolder = getRestAPIFactory().getRecordFolderAPI().updateRecordFolder(recordFolderModel,
+ folderId);
assertStatusCode(OK);
return updateRecordFolder;
@@ -468,4 +494,68 @@ public class BaseRMRestTest extends RestTest
{
return getFilePlanAsUser(getAdminUser(), componentId);
}
+
+ /**
+ * Recursively delete a folder
+ *
+ * @param siteModel
+ * @param folder
+ */
+ public void deleteFolder(SiteModel siteModel, FolderModel folder)
+ {
+ contentService.deleteTree(getAdminUser().getUsername(), getAdminUser().getPassword(), siteModel.getId(),
+ folder.getName());
+ }
+
+ /**
+ * Create an electronic record
+ *
+ * @param parentId the id of the parent
+ * @param name the name of the record
+ * @return the created record
+ * @throws Exception
+ */
+ public Record createElectronicRecord(String parentId, String name) throws Exception
+ {
+ RecordFolderAPI recordFolderAPI = restAPIFactory.getRecordFolderAPI();
+ Record recordModel = Record.builder().name(name).nodeType(CONTENT_TYPE).build();
+ return recordFolderAPI.createRecord(recordModel, parentId);
+ }
+
+ /**
+ * Delete a record folder
+ *
+ * @param recordFolderId the id of the record folder to delete
+ */
+ public void deleteRecordFolder(String recordFolderId)
+ {
+ RecordFolderAPI recordFolderAPI = restAPIFactory.getRecordFolderAPI();
+ recordFolderAPI.deleteRecordFolder(recordFolderId);
+ }
+
+ /**
+ * Delete a record category
+ *
+ * @param recordCategoryId the id of the record category to delete
+ */
+ public void deleteRecordCategory(String recordCategoryId)
+ {
+ RecordCategoryAPI recordCategoryAPI = restAPIFactory.getRecordCategoryAPI();
+ recordCategoryAPI.deleteRecordCategory(recordCategoryId);
+ }
+
+ /**
+ * Assign filling permission on a record category and give the user RM_USER role
+ *
+ * @param user the user to assign the permission to
+ * @param categoryId the id of the category to assign permissions for
+ * @throws Exception
+ */
+ public void assignFillingPermissionsOnCategory(UserModel user, String categoryId) throws Exception
+ {
+ getRestAPIFactory().getRMUserAPI().addUserPermission(categoryId, user, PERMISSION_FILING);
+ rmRolesAndActionsAPI.assignUserToRole(dataUser.getAdminUser().getUsername(),
+ dataUser.getAdminUser().getPassword(), user.getUsername(), ROLE_RM_USER);
+ }
+
}