mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
RM-4326: allow creation in transfer only from TransferServiceImpl
This commit is contained in:
@@ -84,6 +84,8 @@
|
|||||||
<bean id="rma.transferContainer" class="org.alfresco.module.org_alfresco_module_rm.model.rma.type.TransferContainerType" parent="rm.baseBehaviour">
|
<bean id="rma.transferContainer" class="org.alfresco.module.org_alfresco_module_rm.model.rma.type.TransferContainerType" parent="rm.baseBehaviour">
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<bean id="rma.transfer" class="org.alfresco.module.org_alfresco_module_rm.model.rma.type.TransferType" parent="rm.baseBehaviour" />
|
||||||
|
|
||||||
<bean id="rma.unfiledRecordsContainer" class="org.alfresco.module.org_alfresco_module_rm.model.rma.type.UnfiledRecordContainerType" parent="rm.baseBehaviour">
|
<bean id="rma.unfiledRecordsContainer" class="org.alfresco.module.org_alfresco_module_rm.model.rma.type.UnfiledRecordContainerType" parent="rm.baseBehaviour">
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
@@ -162,6 +162,7 @@
|
|||||||
<property name="nodeService" ref="nodeService"/>
|
<property name="nodeService" ref="nodeService"/>
|
||||||
<property name="freezeService" ref="FreezeService"/>
|
<property name="freezeService" ref="FreezeService"/>
|
||||||
<property name="transferContainerType" ref="rma.transferContainer"/>
|
<property name="transferContainerType" ref="rma.transferContainer"/>
|
||||||
|
<property name="transferType" ref="rma.transfer"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="RmTransferService" class="org.springframework.aop.framework.ProxyFactoryBean">
|
<bean id="RmTransferService" class="org.springframework.aop.framework.ProxyFactoryBean">
|
||||||
@@ -1061,8 +1062,8 @@
|
|||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="recordMetadataAspectBootstrap" class="org.alfresco.module.org_alfresco_module_rm.record.RecordMetadataBootstrap" init-method="init" abstract="true">
|
<bean id="recordMetadataAspectBootstrap" class="org.alfresco.module.org_alfresco_module_rm.record.RecordMetadataBootstrap" init-method="init" abstract="true">
|
||||||
<property name="recordService" ref="recordService"/>
|
<property name="recordService" ref="recordService"/>
|
||||||
<property name="namespaceService" ref="namespaceService"/>
|
<property name="namespaceService" ref="namespaceService"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="RecordService" class="org.springframework.aop.framework.ProxyFactoryBean">
|
<bean id="RecordService" class="org.springframework.aop.framework.ProxyFactoryBean">
|
||||||
|
@@ -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.freeze.FreezeService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
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.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.record.RecordService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.recordfolder.RecordFolderService;
|
import org.alfresco.module.org_alfresco_module_rm.recordfolder.RecordFolderService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.util.ServiceBaseImpl;
|
import org.alfresco.module.org_alfresco_module_rm.util.ServiceBaseImpl;
|
||||||
@@ -90,6 +91,8 @@ public class TransferServiceImpl extends ServiceBaseImpl
|
|||||||
|
|
||||||
protected TransferContainerType transferContainerType;
|
protected TransferContainerType transferContainerType;
|
||||||
|
|
||||||
|
protected TransferType transferType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param filePlanService file plan service
|
* @param filePlanService file plan service
|
||||||
*/
|
*/
|
||||||
@@ -135,6 +138,11 @@ public class TransferServiceImpl extends ServiceBaseImpl
|
|||||||
this.transferContainerType = transferContainerType;
|
this.transferContainerType = transferContainerType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setTransferType(TransferType transferType)
|
||||||
|
{
|
||||||
|
this.transferType = transferType;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.alfresco.module.org_alfresco_module_rm.transfer.TransferService#transfer(NodeRef, boolean)
|
* @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
|
// Link the record to the trasnfer object
|
||||||
nodeService.addChild(transferNodeRef,
|
transferType.disable();
|
||||||
nodeRef,
|
try
|
||||||
ASSOC_TRANSFERRED,
|
{
|
||||||
ASSOC_TRANSFERRED);
|
nodeService.addChild(transferNodeRef,
|
||||||
|
nodeRef,
|
||||||
|
ASSOC_TRANSFERRED,
|
||||||
|
ASSOC_TRANSFERRED);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
transferType.enable();
|
||||||
|
}
|
||||||
|
|
||||||
// Set PDF indicator flag
|
// Set PDF indicator flag
|
||||||
setPDFIndicationFlag(transferNodeRef, nodeRef);
|
setPDFIndicationFlag(transferNodeRef, nodeRef);
|
||||||
|
@@ -409,11 +409,7 @@ public class RMNodesImpl extends NodesImpl implements RMNodes
|
|||||||
NodeRef parentNodeRef = validateOrLookupNode(nodeId, null);
|
NodeRef parentNodeRef = validateOrLookupNode(nodeId, null);
|
||||||
QName parentNodeRefType = nodeService.getType(parentNodeRef);
|
QName parentNodeRefType = nodeService.getType(parentNodeRef);
|
||||||
|
|
||||||
if(RecordsManagementModel.TYPE_TRANSFER.equals(parentNodeRefType))
|
if(RecordsManagementModel.TYPE_HOLD.equals(parentNodeRefType))
|
||||||
{
|
|
||||||
throw new PermissionDeniedException("POST request not allowed in Transfer Folder.");
|
|
||||||
}
|
|
||||||
else if(RecordsManagementModel.TYPE_HOLD.equals(parentNodeRefType))
|
|
||||||
{
|
{
|
||||||
throw new PermissionDeniedException("POST request not allowed in Hold Folder.");
|
throw new PermissionDeniedException("POST request not allowed in Hold Folder.");
|
||||||
}
|
}
|
||||||
|
@@ -755,22 +755,6 @@ public class RMNodesImplUnitTest extends BaseUnitTest
|
|||||||
rmNodesImpl.checkPostPermission(parentNodeRef.getId());
|
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
|
@Test
|
||||||
public void testCheckPostPermissionForHoldFolder() throws Exception
|
public void testCheckPostPermissionForHoldFolder() throws Exception
|
||||||
{
|
{
|
||||||
|
@@ -145,29 +145,6 @@ public class FileplanComponentChildrenRelationUnitTest extends BaseUnitTest
|
|||||||
verify(mockedRMNodes, never()).createNode(parentNodeRef.getId(), nodeInfos.get(0), mockedParameters);
|
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<Node> nodeInfos = new ArrayList<Node>();
|
|
||||||
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
|
@Test
|
||||||
public void testUpload() throws Exception
|
public void testUpload() throws Exception
|
||||||
{
|
{
|
||||||
@@ -220,25 +197,4 @@ public class FileplanComponentChildrenRelationUnitTest extends BaseUnitTest
|
|||||||
}
|
}
|
||||||
verify(mockedRMNodes, never()).upload(parentNodeRef.getId(), mockedFormData, mockedParameters);
|
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user