mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
Merge branch 'feature-2.4/RM-3077_LinkedAndCutOffRecordsPropertiesNotAvailableForUsersWithNoAccessToLinkedFolder' into 'release/V2.4'
Feature 2.4/rm 3077 linked and cut off records properties not available for users with no access to linked folder Uses runAsSystem for obtaining instructions, recordCategory and categoryId in RecordsManagementNodeFormFilter.AddTransientProperties() See merge request !94
This commit is contained in:
@@ -269,7 +269,7 @@ public class RecordsManagementNodeFormFilter extends RecordsManagementFormFilter
|
||||
* @param form
|
||||
* @param nodeRef
|
||||
*/
|
||||
protected void addTransientProperties(Form form, final NodeRef nodeRef)
|
||||
protected void addTransientProperties(final Form form, final NodeRef nodeRef)
|
||||
{
|
||||
if (recordService.isRecord(nodeRef))
|
||||
{
|
||||
@@ -277,33 +277,36 @@ public class RecordsManagementNodeFormFilter extends RecordsManagementFormFilter
|
||||
}
|
||||
|
||||
// Need to get the disposition schedule as the system user. See RM-1727.
|
||||
DispositionSchedule ds = runAsSystem(new RunAsWork<DispositionSchedule>()
|
||||
//Need to run all block as the system user, needed for disposition instructions, recordCategory and categoryId. See RM-3077.
|
||||
runAsSystem(new RunAsWork<Void>()
|
||||
{
|
||||
@Override
|
||||
public DispositionSchedule doWork()
|
||||
public Void doWork() throws Exception
|
||||
{
|
||||
return getDispositionService().getDispositionSchedule(nodeRef);
|
||||
DispositionSchedule ds = getDispositionService().getDispositionSchedule(nodeRef);
|
||||
|
||||
if (ds != null)
|
||||
{
|
||||
String instructions = ds.getDispositionInstructions();
|
||||
if (instructions != null)
|
||||
{
|
||||
addTransientPropertyField(form, TRANSIENT_DISPOSITION_INSTRUCTIONS, DataTypeDefinition.TEXT,
|
||||
instructions);
|
||||
}
|
||||
|
||||
NodeRef recordCategory = getDispositionService().getAssociatedRecordsManagementContainer(ds);
|
||||
if (recordCategory != null)
|
||||
{
|
||||
String categoryId = (String) nodeService.getProperty(recordCategory, PROP_IDENTIFIER);
|
||||
if (categoryId != null)
|
||||
{
|
||||
addTransientPropertyField(form, TRANSIENT_CATEGORY_ID, DataTypeDefinition.TEXT, categoryId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
if (ds != null)
|
||||
{
|
||||
String instructions = ds.getDispositionInstructions();
|
||||
if (instructions != null)
|
||||
{
|
||||
addTransientPropertyField(form, TRANSIENT_DISPOSITION_INSTRUCTIONS, DataTypeDefinition.TEXT, instructions);
|
||||
}
|
||||
|
||||
NodeRef recordCategory = getDispositionService().getAssociatedRecordsManagementContainer(ds);
|
||||
if (recordCategory != null)
|
||||
{
|
||||
String categoryId = (String)nodeService.getProperty(recordCategory, PROP_IDENTIFIER);
|
||||
if (categoryId != null)
|
||||
{
|
||||
addTransientPropertyField(form, TRANSIENT_CATEGORY_ID, DataTypeDefinition.TEXT, categoryId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user