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)
|
||||
{
|
||||
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
|
||||
public NodeRef doWork()
|
||||
if (targetisUnfiledRecords)
|
||||
{
|
||||
// double check that the child hasn't been created by another thread
|
||||
NodeRef child = getChild(parent, childName);
|
||||
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;
|
||||
// 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 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