diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-model-context.xml b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-model-context.xml
index 16dd447fe6..fe6cedfd6d 100644
--- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-model-context.xml
+++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-model-context.xml
@@ -84,6 +84,8 @@
+
+
diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml
index e875aba1e5..ca3985d07f 100644
--- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml
+++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml
@@ -162,6 +162,7 @@
+
@@ -1061,8 +1062,8 @@
-
-
+
+
diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/transfer/TransferServiceImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/transfer/TransferServiceImpl.java
index 89b1227eef..be3775462f 100644
--- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/transfer/TransferServiceImpl.java
+++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/transfer/TransferServiceImpl.java
@@ -42,6 +42,7 @@ import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
import org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService;
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
import org.alfresco.module.org_alfresco_module_rm.model.rma.type.TransferContainerType;
+import org.alfresco.module.org_alfresco_module_rm.model.rma.type.TransferType;
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
import org.alfresco.module.org_alfresco_module_rm.recordfolder.RecordFolderService;
import org.alfresco.module.org_alfresco_module_rm.util.ServiceBaseImpl;
@@ -90,6 +91,8 @@ public class TransferServiceImpl extends ServiceBaseImpl
protected TransferContainerType transferContainerType;
+ protected TransferType transferType;
+
/**
* @param filePlanService file plan service
*/
@@ -135,6 +138,11 @@ public class TransferServiceImpl extends ServiceBaseImpl
this.transferContainerType = transferContainerType;
}
+ public void setTransferType(TransferType transferType)
+ {
+ this.transferType = transferType;
+ }
+
/**
* @see org.alfresco.module.org_alfresco_module_rm.transfer.TransferService#transfer(NodeRef, boolean)
*/
@@ -205,10 +213,18 @@ public class TransferServiceImpl extends ServiceBaseImpl
}
// Link the record to the trasnfer object
- nodeService.addChild(transferNodeRef,
- nodeRef,
- ASSOC_TRANSFERRED,
- ASSOC_TRANSFERRED);
+ transferType.disable();
+ try
+ {
+ nodeService.addChild(transferNodeRef,
+ nodeRef,
+ ASSOC_TRANSFERRED,
+ ASSOC_TRANSFERRED);
+ }
+ finally
+ {
+ transferType.enable();
+ }
// Set PDF indicator flag
setPDFIndicationFlag(transferNodeRef, nodeRef);
diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMNodesImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMNodesImpl.java
index 94effa0345..198c75afab 100644
--- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMNodesImpl.java
+++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/impl/RMNodesImpl.java
@@ -409,11 +409,7 @@ public class RMNodesImpl extends NodesImpl implements RMNodes
NodeRef parentNodeRef = validateOrLookupNode(nodeId, null);
QName parentNodeRefType = nodeService.getType(parentNodeRef);
- if(RecordsManagementModel.TYPE_TRANSFER.equals(parentNodeRefType))
- {
- throw new PermissionDeniedException("POST request not allowed in Transfer Folder.");
- }
- else if(RecordsManagementModel.TYPE_HOLD.equals(parentNodeRefType))
+ if(RecordsManagementModel.TYPE_HOLD.equals(parentNodeRefType))
{
throw new PermissionDeniedException("POST request not allowed in Hold Folder.");
}
diff --git a/rm-community/rm-community-repo/unit-test/java/org/alfresco/rm/rest/api/impl/RMNodesImplUnitTest.java b/rm-community/rm-community-repo/unit-test/java/org/alfresco/rm/rest/api/impl/RMNodesImplUnitTest.java
index 47042d1d5f..21c0ab62f5 100644
--- a/rm-community/rm-community-repo/unit-test/java/org/alfresco/rm/rest/api/impl/RMNodesImplUnitTest.java
+++ b/rm-community/rm-community-repo/unit-test/java/org/alfresco/rm/rest/api/impl/RMNodesImplUnitTest.java
@@ -755,22 +755,6 @@ public class RMNodesImplUnitTest extends BaseUnitTest
rmNodesImpl.checkPostPermission(parentNodeRef.getId());
}
- @Test
- public void testCheckPostPermissionForTransferFolder() throws Exception
- {
- NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
- when(mockedNodeService.getType(parentNodeRef)).thenReturn(RecordsManagementModel.TYPE_TRANSFER);
- try
- {
- rmNodesImpl.checkPostPermission(parentNodeRef.getId());
- fail("Expected ecxeption as post should not be permitted on the Transfer Folder");
- }
- catch(PermissionDeniedException ex)
- {
- assertEquals("POST request not allowed in Transfer Folder.", ex.getMsgId());
- }
- }
-
@Test
public void testCheckPostPermissionForHoldFolder() throws Exception
{
diff --git a/rm-community/rm-community-repo/unit-test/java/org/alfresco/rm/rest/api/nodes/FileplanComponentChildrenRelationUnitTest.java b/rm-community/rm-community-repo/unit-test/java/org/alfresco/rm/rest/api/nodes/FileplanComponentChildrenRelationUnitTest.java
index a5bca8b366..df7e599d01 100644
--- a/rm-community/rm-community-repo/unit-test/java/org/alfresco/rm/rest/api/nodes/FileplanComponentChildrenRelationUnitTest.java
+++ b/rm-community/rm-community-repo/unit-test/java/org/alfresco/rm/rest/api/nodes/FileplanComponentChildrenRelationUnitTest.java
@@ -145,29 +145,6 @@ public class FileplanComponentChildrenRelationUnitTest extends BaseUnitTest
verify(mockedRMNodes, never()).createNode(parentNodeRef.getId(), nodeInfos.get(0), mockedParameters);
}
- @Test
- public void testCreateOnTransferFolder() throws Exception
- {
- Parameters mockedParameters = mock(Parameters.class);
- NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
-
- List nodeInfos = new ArrayList();
- Node mokedNodeInfo = mock(Node.class);
- nodeInfos.add(mokedNodeInfo);
-
- Mockito.doThrow(new PermissionDeniedException("POST request not allowed in Transfer Folder.")).when(mockedRMNodes).checkPostPermission(parentNodeRef.getId());
- try
- {
- filePlanComponentChildrenRelation.create(parentNodeRef.getId(), nodeInfos, mockedParameters);
- fail("Expected ecxeption as POST request is not allowed in Transfer Folder.");
- }
- catch(PermissionDeniedException ex)
- {
- assertEquals("POST request not allowed in Transfer Folder.", ex.getMsgId());
- }
- verify(mockedRMNodes, never()).createNode(parentNodeRef.getId(), nodeInfos.get(0), mockedParameters);
- }
-
@Test
public void testUpload() throws Exception
{
@@ -220,25 +197,4 @@ public class FileplanComponentChildrenRelationUnitTest extends BaseUnitTest
}
verify(mockedRMNodes, never()).upload(parentNodeRef.getId(), mockedFormData, mockedParameters);
}
-
- @Test
- public void testUploadOnTransferFolder() throws Exception
- {
- Parameters mockedParameters = mock(Parameters.class);
- NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
- FormData mockedFormData = mock(FormData.class);
- WithResponse mockedWithResponse = mock(WithResponse.class);
-
- Mockito.doThrow(new PermissionDeniedException("POST request not allowed in Transfer Folder.")).when(mockedRMNodes).checkPostPermission(parentNodeRef.getId());
- try
- {
- filePlanComponentChildrenRelation.create(parentNodeRef.getId(), mockedFormData, mockedParameters, mockedWithResponse);
- fail("Expected ecxeption as POST request is not allowed in Transfer Folder.");
- }
- catch(PermissionDeniedException ex)
- {
- assertEquals("POST request not allowed in Transfer Folder.", ex.getMsgId());
- }
- verify(mockedRMNodes, never()).upload(parentNodeRef.getId(), mockedFormData, mockedParameters);
- }
}