assocs = nodeService.getChildAssocs(nodeRef, ContentModel.ASSOC_CONTAINS, RegexQNamePattern.MATCH_ALL);
+ for (ChildAssociationRef assoc : assocs)
{
- deletePermission(child, authority, permission);
+ NodeRef child = assoc.getChildRef();
+ if (filePlanService.isFilePlanContainer(child) == true ||
+ recordsManagementService.isRecordFolder(child) == true ||
+ recordService.isRecord(child) == true)
+ {
+ deletePermission(child, authority, permission);
+ }
}
}
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/util/ServiceBaseImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/util/ServiceBaseImpl.java
index 46fabeec30..609440e3dc 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/util/ServiceBaseImpl.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/util/ServiceBaseImpl.java
@@ -18,11 +18,13 @@
*/
package org.alfresco.module.org_alfresco_module_rm.util;
+import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.ParameterCheck;
+import org.alfresco.util.PropertyMap;
/**
* Helper base class for service implementations.
@@ -30,7 +32,7 @@ import org.alfresco.util.ParameterCheck;
* @author Roy Wetherall
* @since 2.1
*/
-public class ServiceBaseImpl
+public class ServiceBaseImpl implements RecordsManagementModel
{
/** Node service */
protected NodeService nodeService;
@@ -73,5 +75,40 @@ public class ServiceBaseImpl
}
return result;
}
+
+ /**
+ * Utility method to get the next counter for a node.
+ *
+ * If the node is not already countable, then rma:countable is added and 0 returned.
+ *
+ * @param nodeRef node reference
+ * @return int next counter value
+ */
+ protected int getNextCount(NodeRef nodeRef)
+ {
+ int counter = 0;
+ if (nodeService.hasAspect(nodeRef, ASPECT_COUNTABLE) == false)
+ {
+ PropertyMap props = new PropertyMap(1);
+ props.put(PROP_COUNT, 1);
+ nodeService.addAspect(nodeRef, ASPECT_COUNTABLE, props);
+ counter = 1;
+ }
+ else
+ {
+ Integer value = (Integer)this.nodeService.getProperty(nodeRef, PROP_COUNT);
+ if (value != null)
+ {
+ counter = value.intValue() + 1;
+ }
+ else
+ {
+ counter = 1;
+ }
+ nodeService.setProperty(nodeRef, PROP_COUNT, counter);
+
+ }
+ return counter;
+ }
}
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/FilePlanServiceImplTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/FilePlanServiceImplTest.java
index 16b018d3f7..c7c7834e5e 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/FilePlanServiceImplTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/FilePlanServiceImplTest.java
@@ -87,7 +87,7 @@ public class FilePlanServiceImplTest extends BaseRMTestCase
{
public void runImpl() throws Exception
{
- assertEquals(filePlan, filePlanService.getFilePlanBySiteId(SITE_ID));
+ assertEquals(filePlan, filePlanService.getFilePlanBySiteId(siteId));
assertNull(filePlanService.getFilePlanBySiteId("rubbish"));
String siteId = GUID.generate();
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/RecordsManagementSearchServiceImplTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/RecordsManagementSearchServiceImplTest.java
index 169345f991..0917fadb3e 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/RecordsManagementSearchServiceImplTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/RecordsManagementSearchServiceImplTest.java
@@ -84,7 +84,7 @@ public class RecordsManagementSearchServiceImplTest extends BaseRMTestCase
TestWithUserUtils.createUser(USER2, USER2, rootNodeRef, nodeService, authenticationService);
// Count the number of pre-defined reports
- List searches = rmSearchService.getSavedSearches(SITE_ID);
+ List searches = rmSearchService.getSavedSearches(siteId);
assertNotNull(searches);
numberOfReports = searches.size();
@@ -151,7 +151,7 @@ public class RecordsManagementSearchServiceImplTest extends BaseRMTestCase
String query = "keywords:\"elephant\"";
RecordsManagementSearchParameters params = new RecordsManagementSearchParameters();
params.setIncludeUndeclaredRecords(true);
- List results = rmSearchService.search(SITE_ID, query, params);
+ List results = rmSearchService.search(siteId, query, params);
assertNotNull(results);
assertEquals(2, results.size());
@@ -172,10 +172,10 @@ public class RecordsManagementSearchServiceImplTest extends BaseRMTestCase
@Override
public Void run()
{
- SavedSearchDetails details1 = rmSearchService.saveSearch(SITE_ID, SEARCH1, "description1", "query1", new RecordsManagementSearchParameters(), true);
- checkSearchDetails(details1, "mySite", "search1", "description1", "query1", new RecordsManagementSearchParameters(), true);
- SavedSearchDetails details2 = rmSearchService.saveSearch(SITE_ID, SEARCH2, "description2", "query2", new RecordsManagementSearchParameters(), false);
- checkSearchDetails(details2, "mySite", "search2", "description2", "query2", new RecordsManagementSearchParameters(), false);
+ SavedSearchDetails details1 = rmSearchService.saveSearch(siteId, SEARCH1, "description1", "query1", new RecordsManagementSearchParameters(), true);
+ checkSearchDetails(details1, siteId, "search1", "description1", "query1", new RecordsManagementSearchParameters(), true);
+ SavedSearchDetails details2 = rmSearchService.saveSearch(siteId, SEARCH2, "description2", "query2", new RecordsManagementSearchParameters(), false);
+ checkSearchDetails(details2, siteId, "search2", "description2", "query2", new RecordsManagementSearchParameters(), false);
return null;
}
@@ -188,10 +188,10 @@ public class RecordsManagementSearchServiceImplTest extends BaseRMTestCase
@Override
public Void run()
{
- SavedSearchDetails details1 = rmSearchService.saveSearch(SITE_ID, SEARCH3, "description3", "query3", new RecordsManagementSearchParameters(), false);
- checkSearchDetails(details1, "mySite", SEARCH3, "description3", "query3", new RecordsManagementSearchParameters(), false);
- SavedSearchDetails details2 = rmSearchService.saveSearch(SITE_ID, SEARCH4, "description4", "query4", new RecordsManagementSearchParameters(), false);
- checkSearchDetails(details2, "mySite", SEARCH4, "description4", "query4", new RecordsManagementSearchParameters(), false);
+ SavedSearchDetails details1 = rmSearchService.saveSearch(siteId, SEARCH3, "description3", "query3", new RecordsManagementSearchParameters(), false);
+ checkSearchDetails(details1, siteId, SEARCH3, "description3", "query3", new RecordsManagementSearchParameters(), false);
+ SavedSearchDetails details2 = rmSearchService.saveSearch(siteId, SEARCH4, "description4", "query4", new RecordsManagementSearchParameters(), false);
+ checkSearchDetails(details2, siteId, SEARCH4, "description4", "query4", new RecordsManagementSearchParameters(), false);
return null;
}
@@ -204,22 +204,22 @@ public class RecordsManagementSearchServiceImplTest extends BaseRMTestCase
@Override
public Void run()
{
- List searches = rmSearchService.getSavedSearches(SITE_ID);
+ List searches = rmSearchService.getSavedSearches(siteId);
assertNotNull(searches);
assertEquals(numberOfReports + 2, searches.size());
- SavedSearchDetails search1 = rmSearchService.getSavedSearch(SITE_ID, SEARCH1);
+ SavedSearchDetails search1 = rmSearchService.getSavedSearch(siteId, SEARCH1);
assertNotNull(search1);
- checkSearchDetails(search1, "mySite", "search1", "description1", "query1", new RecordsManagementSearchParameters(), true);
+ checkSearchDetails(search1, siteId, "search1", "description1", "query1", new RecordsManagementSearchParameters(), true);
- SavedSearchDetails search2 = rmSearchService.getSavedSearch(SITE_ID, SEARCH2);
+ SavedSearchDetails search2 = rmSearchService.getSavedSearch(siteId, SEARCH2);
assertNotNull(search2);
- checkSearchDetails(search2, "mySite", "search2", "description2", "query2", new RecordsManagementSearchParameters(), false);
+ checkSearchDetails(search2, siteId, "search2", "description2", "query2", new RecordsManagementSearchParameters(), false);
- SavedSearchDetails search3 = rmSearchService.getSavedSearch(SITE_ID, SEARCH3);
+ SavedSearchDetails search3 = rmSearchService.getSavedSearch(siteId, SEARCH3);
assertNull(search3);
- SavedSearchDetails search4 = rmSearchService.getSavedSearch(SITE_ID, SEARCH4);
+ SavedSearchDetails search4 = rmSearchService.getSavedSearch(siteId, SEARCH4);
assertNull(search4);
return null;
@@ -233,24 +233,24 @@ public class RecordsManagementSearchServiceImplTest extends BaseRMTestCase
@Override
public Void run()
{
- List searches = rmSearchService.getSavedSearches(SITE_ID);
+ List searches = rmSearchService.getSavedSearches(siteId);
assertNotNull(searches);
assertEquals(numberOfReports + 3, searches.size());
- SavedSearchDetails search1 = rmSearchService.getSavedSearch(SITE_ID, SEARCH1);
+ SavedSearchDetails search1 = rmSearchService.getSavedSearch(siteId, SEARCH1);
assertNotNull(search1);
- checkSearchDetails(search1, "mySite", "search1", "description1", "query1", new RecordsManagementSearchParameters(), true);
+ checkSearchDetails(search1, siteId, "search1", "description1", "query1", new RecordsManagementSearchParameters(), true);
- SavedSearchDetails search2 = rmSearchService.getSavedSearch(SITE_ID, SEARCH2);
+ SavedSearchDetails search2 = rmSearchService.getSavedSearch(siteId, SEARCH2);
assertNull(search2);
- SavedSearchDetails search3 = rmSearchService.getSavedSearch(SITE_ID, SEARCH3);
+ SavedSearchDetails search3 = rmSearchService.getSavedSearch(siteId, SEARCH3);
assertNotNull(search3);
- checkSearchDetails(search3, "mySite", SEARCH3, "description3", "query3", new RecordsManagementSearchParameters(), false);
+ checkSearchDetails(search3, siteId, SEARCH3, "description3", "query3", new RecordsManagementSearchParameters(), false);
- SavedSearchDetails search4 = rmSearchService.getSavedSearch(SITE_ID, SEARCH4);
+ SavedSearchDetails search4 = rmSearchService.getSavedSearch(siteId, SEARCH4);
assertNotNull(search4);
- checkSearchDetails(search4, "mySite", "search4", "description4", "query4", new RecordsManagementSearchParameters(), false);
+ checkSearchDetails(search4, siteId, "search4", "description4", "query4", new RecordsManagementSearchParameters(), false);
return null;
}
@@ -263,15 +263,15 @@ public class RecordsManagementSearchServiceImplTest extends BaseRMTestCase
@Override
public Void run()
{
- SavedSearchDetails search1 = rmSearchService.getSavedSearch(SITE_ID, SEARCH1);
+ SavedSearchDetails search1 = rmSearchService.getSavedSearch(siteId, SEARCH1);
assertNotNull(search1);
- checkSearchDetails(search1, SITE_ID, SEARCH1, "description1", "query1", new RecordsManagementSearchParameters(), true);
+ checkSearchDetails(search1, siteId, SEARCH1, "description1", "query1", new RecordsManagementSearchParameters(), true);
- rmSearchService.saveSearch(SITE_ID, SEARCH1, "change", "change", new RecordsManagementSearchParameters(), true);
+ rmSearchService.saveSearch(siteId, SEARCH1, "change", "change", new RecordsManagementSearchParameters(), true);
- search1 = rmSearchService.getSavedSearch(SITE_ID, SEARCH1);
+ search1 = rmSearchService.getSavedSearch(siteId, SEARCH1);
assertNotNull(search1);
- checkSearchDetails(search1, SITE_ID, SEARCH1, "change", "change", new RecordsManagementSearchParameters(), true);
+ checkSearchDetails(search1, siteId, SEARCH1, "change", "change", new RecordsManagementSearchParameters(), true);
return null;
}
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMTestCase.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMTestCase.java
index 99e1732d3f..597076045b 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMTestCase.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMTestCase.java
@@ -96,7 +96,6 @@ public abstract class BaseRMTestCase extends RetryingTransactionHelperTestCase
protected QName ASPECT_RECORD_META_DATA = QName.createQName(URI, "recordMetaData");
/** site id's */
- protected static final String SITE_ID = "mySite";
protected static final String COLLABORATION_SITE_ID = "collab-site-id";
/** Common test utils */
@@ -140,6 +139,7 @@ public abstract class BaseRMTestCase extends RetryingTransactionHelperTestCase
protected FilePlanAuthenticationService filePlanAuthenticationService;
/** test data */
+ protected String siteId;
protected StoreRef storeRef;
protected NodeRef rootNodeRef;
protected SiteInfo siteInfo;
@@ -404,7 +404,7 @@ public abstract class BaseRMTestCase extends RetryingTransactionHelperTestCase
nodeService.deleteNode(folder);
// Delete the site
- siteService.deleteSite(SITE_ID);
+ siteService.deleteSite(siteId);
// delete the collaboration site (if required)
if (isCollaborationSiteTest() == true)
@@ -488,15 +488,16 @@ public abstract class BaseRMTestCase extends RetryingTransactionHelperTestCase
permissionService.setPermission(folder, "rmadmin", PermissionService.WRITE, true);
permissionService.setPermission(folder, "rmadmin", PermissionService.ADD_CHILDREN, true);
+ siteId = GUID.generate();
siteInfo = siteService.createSite(
"rm-site-dashboard",
- SITE_ID,
+ siteId,
"title",
"descrition",
SiteVisibility.PUBLIC,
RecordsManagementModel.TYPE_RM_SITE);
- filePlan = siteService.getContainer(SITE_ID, RmSiteType.COMPONENT_DOCUMENT_LIBRARY);
+ filePlan = siteService.getContainer(siteId, RmSiteType.COMPONENT_DOCUMENT_LIBRARY);
assertNotNull("Site document library container was not created successfully.", filePlan);
// Create RM container
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMWebScriptTestCase.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMWebScriptTestCase.java
index 9c36f4311f..e43803aef9 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMWebScriptTestCase.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMWebScriptTestCase.java
@@ -62,6 +62,7 @@ import org.alfresco.service.cmr.tagging.TaggingService;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.transaction.TransactionService;
+import org.alfresco.util.GUID;
import org.alfresco.util.PropertyMap;
import org.springframework.context.ApplicationContext;
@@ -70,8 +71,6 @@ import org.springframework.context.ApplicationContext;
*/
public class BaseRMWebScriptTestCase extends BaseWebScriptTest
{
- /** Site id */
- protected static final String SITE_ID = "mySite";
/** Collab site id */
protected static final String COLLAB_SITE_ID = "myCollabSite";
@@ -111,6 +110,7 @@ public class BaseRMWebScriptTestCase extends BaseWebScriptTest
protected FilePlanService filePlanService;
/** test data */
+ protected String siteId;
protected StoreRef storeRef;
protected NodeRef rootNodeRef;
protected SiteInfo siteInfo;
@@ -214,7 +214,7 @@ public class BaseRMWebScriptTestCase extends BaseWebScriptTest
nodeService.deleteNode(folder);
// Delete the site
- siteService.deleteSite(SITE_ID);
+ siteService.deleteSite(siteId);
// Delete the collaboration site (if required)
if (isCollaborationSiteTest() == true)
@@ -275,8 +275,9 @@ public class BaseRMWebScriptTestCase extends BaseWebScriptTest
assertNotNull("Could not create base folder", folder);
// Create the site
- siteInfo = siteService.createSite("rm-site-dashboard", SITE_ID, "title", "descrition", SiteVisibility.PUBLIC, RecordsManagementModel.TYPE_RM_SITE);
- filePlan = siteService.getContainer(SITE_ID, RmSiteType.COMPONENT_DOCUMENT_LIBRARY);
+ siteId = GUID.generate();
+ siteInfo = siteService.createSite("rm-site-dashboard", siteId, "title", "descrition", SiteVisibility.PUBLIC, RecordsManagementModel.TYPE_RM_SITE);
+ filePlan = siteService.getContainer(siteId, RmSiteType.COMPONENT_DOCUMENT_LIBRARY);
assertNotNull("Site document library container was not created successfully.", filePlan);
recordSeries = filePlanService.createRecordCategory(filePlan, "recordSeries");
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/DataSetRestApiTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/DataSetRestApiTest.java
index b3e8c75cc3..aea1d82aef 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/DataSetRestApiTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/DataSetRestApiTest.java
@@ -31,7 +31,7 @@ public class DataSetRestApiTest extends BaseRMWebScriptTestCase
/** Test GET */
// Format url and send request
- String getUrl = String.format(GET_DATASETS_URL, SITE_ID);
+ String getUrl = String.format(GET_DATASETS_URL, siteId);
Response getResponse = sendRequest(new GetRequest(getUrl), Status.STATUS_OK);
// Check the content from the response
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmClassesRestApiTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmClassesRestApiTest.java
index 042a5d4c83..f2d9816582 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmClassesRestApiTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmClassesRestApiTest.java
@@ -59,7 +59,7 @@ public class RmClassesRestApiTest extends BaseRMWebScriptTestCase
public void testRmGetAspectDefinitions() throws IOException, JSONException
{
// Format url and send request
- String url = String.format(RM_ASPECTS_URL, "aspect", SITE_ID);
+ String url = String.format(RM_ASPECTS_URL, "aspect", siteId);
Response response = sendRequest(new GetRequest(url), Status.STATUS_OK);
// Check the content from the response
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmPropertiesRestApiTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmPropertiesRestApiTest.java
index edb466a14a..00e041e835 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmPropertiesRestApiTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmPropertiesRestApiTest.java
@@ -59,7 +59,7 @@ public class RmPropertiesRestApiTest extends BaseRMWebScriptTestCase
public void testRmGetTypeDefinitions() throws IOException, JSONException
{
// Format url and send request
- String url = String.format(RM_TYPES_URL, "type", SITE_ID);
+ String url = String.format(RM_TYPES_URL, "type", siteId);
Response response = sendRequest(new GetRequest(url), Status.STATUS_OK);
// Check the content from the response
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RoleRestApiTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RoleRestApiTest.java
index 4c21ee3eb6..8d1a932d38 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RoleRestApiTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RoleRestApiTest.java
@@ -52,7 +52,7 @@ public class RoleRestApiTest extends BaseRMWebScriptTestCase
private String getRolesUrlBySite()
{
- return MessageFormat.format(GET_ROLES_URL_BY_SITE, SITE_ID);
+ return MessageFormat.format(GET_ROLES_URL_BY_SITE, siteId);
}
private String getRoleUrlByFilePlan()