diff --git a/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/recordfolders/RecordFolderTests.java b/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/recordfolders/RecordFolderTests.java
index 6381fe88f9..dde7d18a30 100644
--- a/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/recordfolders/RecordFolderTests.java
+++ b/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/recordfolders/RecordFolderTests.java
@@ -464,8 +464,8 @@ public class RecordFolderTests extends BaseRMRestTest
assertEquals(record.getParentId(), containerId);
//check the record name
- assertFalse(record.getName().equals(createdComponent.getName()),
- "Record Name"+ record.getName()+" doesn't contain the record identifier");
+ assertTrue(record.getName().equals(createdComponent.getName()),
+ "Record Name"+ record.getName()+" doesn't match the one returned on create");
assertTrue(createdComponent.getName().contains(createdComponent.getProperties().getIdentifier()),
"Record Name"+ createdComponent.getName()+" doesn't contain the record identifier in response when creating");
assertEquals(createdComponent.getNodeType(), record.getNodeType());
diff --git a/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/unfiledrecordfolders/UnfiledRecordsFolderTests.java b/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/unfiledrecordfolders/UnfiledRecordsFolderTests.java
index 7e6c18b500..3e9c860a8c 100644
--- a/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/unfiledrecordfolders/UnfiledRecordsFolderTests.java
+++ b/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/unfiledrecordfolders/UnfiledRecordsFolderTests.java
@@ -488,7 +488,7 @@ public class UnfiledRecordsFolderTests extends BaseRMRestTest
"The record name "+ record.getName()+" is not equal with the record name returned when creating the record " + createdComponent
.getName());
- assertTrue(record.getName().equals(record.getProperties().getIdentifier()));
+ assertTrue(record.getName().contains(record.getProperties().getIdentifier()));
assertTrue(createdComponent.getName().contains(createdComponent.getProperties().getIdentifier()));
assertEquals(createdComponent.getNodeType(), record.getNodeType());
diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/security/rm-policy-context.xml b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/security/rm-policy-context.xml
index 5c7f4551ed..df078ff509 100644
--- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/security/rm-policy-context.xml
+++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/security/rm-policy-context.xml
@@ -38,6 +38,7 @@
+
diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/WriteContentPolicy.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/WriteContentPolicy.java
index 2279605656..e604675f9f 100644
--- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/WriteContentPolicy.java
+++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/WriteContentPolicy.java
@@ -27,20 +27,46 @@
package org.alfresco.module.org_alfresco_module_rm.capability.policy;
+import java.util.Set;
+
+import org.alfresco.module.org_alfresco_module_rm.record.RecordServiceImpl;
+import org.alfresco.module.org_alfresco_module_rm.util.TransactionalResourceHelper;
import org.alfresco.service.cmr.repository.NodeRef;
import org.aopalliance.intercept.MethodInvocation;
+import net.sf.acegisecurity.vote.AccessDecisionVoter;
+
public class WriteContentPolicy extends AbstractBasePolicy
{
+ protected TransactionalResourceHelper transactionalResourceHelper;
+
+ public void setTransactionalResourceHelper(TransactionalResourceHelper transactionalResourceHelper)
+ {
+ this.transactionalResourceHelper = transactionalResourceHelper;
+ }
@SuppressWarnings("rawtypes")
- public int evaluate(
+ public int evaluate(
MethodInvocation invocation,
Class[] params,
ConfigAttributeDefinition cad)
{
- NodeRef updatee = getTestNode(invocation, params, cad.getParameters().get(0), cad.isParent());
- return getCapabilityService().getCapability("WriteContent").evaluate(updatee);
+ try{
+ NodeRef updatee = getTestNode(invocation, params, cad.getParameters().get(0), cad.isParent());
+ Set newRecords = transactionalResourceHelper.getSet(RecordServiceImpl.KEY_NEW_RECORDS);
+ if(newRecords.contains(updatee))
+ {
+ return AccessDecisionVoter.ACCESS_GRANTED;
+ }
+ else
+ {
+ return getCapabilityService().getCapability("WriteContent").evaluate(updatee);
+ }
+ }
+ catch(Exception ex)
+ {
+ throw ex;
+ }
}
}
diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java
index 316036a867..f1a1991fc3 100644
--- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java
+++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java
@@ -1205,11 +1205,11 @@ public class RecordServiceImpl extends BaseBehaviourBean
disablePropertyEditableCheck();
try
{
- authenticationUtil.runAsSystem(new RunAsWork()
- {
+ authenticationUtil.runAsSystem(new RunAsWork()
+ {
- @Override
- public Void doWork() throws Exception {
+ @Override
+ public Void doWork() throws Exception {
Map props = new HashMap<>();
if(!nodeService.hasAspect(document, ASPECT_RECORD_COMPONENT_ID))
@@ -1226,19 +1226,19 @@ public class RecordServiceImpl extends BaseBehaviourBean
props.put(PROP_IDENTIFIER, recordId);
props.put(PROP_ORIGIONAL_NAME, name);
}
- nodeService.addAspect(document, RecordsManagementModel.ASPECT_RECORD, props);
+ nodeService.addAspect(document, RecordsManagementModel.ASPECT_RECORD, props);
- // remove versionable aspect(s)
- nodeService.removeAspect(document, RecordableVersionModel.ASPECT_VERSIONABLE);
+ // remove versionable aspect(s)
+ nodeService.removeAspect(document, RecordableVersionModel.ASPECT_VERSIONABLE);
- // remove the owner
-
- ownableService.setOwner(document, OwnableService.NO_OWNER);
-
- appendIdentifierToName(nodeService, document);
- return null;
- }
- });
+ // remove the owner
+
+ ownableService.setOwner(document, OwnableService.NO_OWNER);
+
+ appendIdentifierToName(nodeService, document);
+ return null;
+ }
+ });
}
finally
{
diff --git a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM978Test.java b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM978Test.java
index 55a5e62195..54abb6a079 100644
--- a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM978Test.java
+++ b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM978Test.java
@@ -36,6 +36,7 @@ import java.util.List;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.model.ContentModel;
import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
+import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
import org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService;
import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
@@ -408,8 +409,10 @@ public class RM978Test extends BaseRMTestCase
List rmFolderChildAssocs = nodeService.getChildAssocs(rmFolder);
assertEquals(1, rmFolderChildAssocs.size());
NodeRef movedDocument = rmFolderChildAssocs.iterator().next().getChildRef();
+ String recordIdentifier = (String) nodeService.getProperty(movedDocument, RecordsManagementModel.PROP_IDENTIFIER);
+ assertNotNull(recordIdentifier);
String movedDocumentName = (String) nodeService.getProperty(movedDocument, ContentModel.PROP_NAME);
- assertEquals(document1Name, movedDocumentName);
+ assertEquals(document1Name + " (" + recordIdentifier + ")", movedDocumentName);
}
});
}