RM-4326: allow creation in transfer only from TransferServiceImpl

This commit is contained in:
Silviu Dinuta
2016-11-08 18:38:35 +02:00
parent 517e3286b2
commit 0836e9682b
6 changed files with 26 additions and 71 deletions

View File

@@ -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);

View File

@@ -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.");
}