mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Merge pull request #1272 from Alfresco/feature-3.4/APPS-322
APPS-322: [RM/AGS]User without permissions can create categories when Create full path option is checked in rule
This commit is contained in:
@@ -380,40 +380,33 @@ public abstract class CopyMoveLinkFileToBaseAction extends RMActionExecuterAbstr
|
|||||||
*/
|
*/
|
||||||
private NodeRef createChild(final Action action, final NodeRef parent, final String childName, final boolean targetisUnfiledRecords, final boolean lastAsFolder)
|
private NodeRef createChild(final Action action, final NodeRef parent, final String childName, final boolean targetisUnfiledRecords, final boolean lastAsFolder)
|
||||||
{
|
{
|
||||||
return AuthenticationUtil.runAsSystem(new RunAsWork<NodeRef>()
|
// double check that the child hasn't been created by another thread
|
||||||
|
NodeRef child = getChild(parent, childName);
|
||||||
|
if (child == null)
|
||||||
{
|
{
|
||||||
@Override
|
if (targetisUnfiledRecords)
|
||||||
public NodeRef doWork()
|
|
||||||
{
|
{
|
||||||
// double check that the child hasn't been created by another thread
|
// create unfiled folder
|
||||||
NodeRef child = getChild(parent, childName);
|
child = fileFolderService.create(parent, childName, RecordsManagementModel.TYPE_UNFILED_RECORD_FOLDER).getNodeRef();
|
||||||
if (child == null)
|
|
||||||
{
|
|
||||||
if (targetisUnfiledRecords)
|
|
||||||
{
|
|
||||||
// create unfiled folder
|
|
||||||
child = fileFolderService.create(parent, childName, RecordsManagementModel.TYPE_UNFILED_RECORD_FOLDER).getNodeRef();
|
|
||||||
}
|
|
||||||
else if(lastAsFolder)
|
|
||||||
{
|
|
||||||
// create record folder
|
|
||||||
child = getRecordFolderService().createRecordFolder(parent, childName);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// ensure we are not trying to create a record categtory in a record folder
|
|
||||||
if(RecordsManagementModel.TYPE_RECORD_FOLDER.equals(getNodeService().getType(parent)))
|
|
||||||
{
|
|
||||||
throw new AlfrescoRuntimeException("Unable to execute " + action.getActionDefinitionName() + " action, because the destination path has a record category within a record folder.");
|
|
||||||
}
|
|
||||||
|
|
||||||
// create record category
|
|
||||||
child = filePlanService.createRecordCategory(parent, childName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return child;
|
|
||||||
}
|
}
|
||||||
});
|
else if (lastAsFolder)
|
||||||
|
{
|
||||||
|
// create record folder
|
||||||
|
child = getRecordFolderService().createRecordFolder(parent, childName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// ensure we are not trying to create a record category in a record folder
|
||||||
|
if (RecordsManagementModel.TYPE_RECORD_FOLDER.equals(getNodeService().getType(parent)))
|
||||||
|
{
|
||||||
|
throw new AlfrescoRuntimeException("Unable to execute " + action.getActionDefinitionName() + " action, because the destination path has a record category within a record folder.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// create record category
|
||||||
|
child = filePlanService.createRecordCategory(parent, childName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return child;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user