Fixed minor issues reported by sonar (Collapsible If Statements)

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@63800 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Tuna Aksoy
2014-03-09 21:33:14 +00:00
parent dee5508911
commit 28b0a01065
22 changed files with 537 additions and 632 deletions

View File

@@ -48,151 +48,144 @@ import org.springframework.extensions.surf.util.I18NUtil;
*/
public class DeclareRecordAction extends RMActionExecuterAbstractBase
{
/** I18N */
private static final String MSG_UNDECLARED_ONLY_RECORDS = "rm.action.undeclared-only-records";
private static final String MSG_NO_DECLARE_MAND_PROP = "rm.action.no-declare-mand-prop";
/** I18N */
private static final String MSG_UNDECLARED_ONLY_RECORDS = "rm.action.undeclared-only-records";
private static final String MSG_NO_DECLARE_MAND_PROP = "rm.action.no-declare-mand-prop";
/** Logger */
private static Log logger = LogFactory.getLog(DeclareRecordAction.class);
/** Logger */
private static Log logger = LogFactory.getLog(DeclareRecordAction.class);
/**
* @see org.alfresco.repo.action.executer.ActionExecuterAbstractBase#executeImpl(org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef)
*/
@Override
protected void executeImpl(final Action action, final NodeRef actionedUponNodeRef)
{
if (nodeService.exists(actionedUponNodeRef) == true &&
recordService.isRecord(actionedUponNodeRef) == true &&
freezeService.isFrozen(actionedUponNodeRef) == false)
{
if (recordService.isDeclared(actionedUponNodeRef) == false)
{
List<String> missingProperties = new ArrayList<String>(5);
// Aspect not already defined - check mandatory properties then add
if (mandatoryPropertiesSet(actionedUponNodeRef, missingProperties) == true)
/**
* @see org.alfresco.repo.action.executer.ActionExecuterAbstractBase#executeImpl(org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef)
*/
@Override
protected void executeImpl(final Action action, final NodeRef actionedUponNodeRef)
{
if (nodeService.exists(actionedUponNodeRef) == true &&
recordService.isRecord(actionedUponNodeRef) == true &&
freezeService.isFrozen(actionedUponNodeRef) == false)
{
if (recordService.isDeclared(actionedUponNodeRef) == false)
{
recordService.disablePropertyEditableCheck();
try
List<String> missingProperties = new ArrayList<String>(5);
// Aspect not already defined - check mandatory properties then add
if (mandatoryPropertiesSet(actionedUponNodeRef, missingProperties) == true)
{
// Add the declared aspect
Map<QName, Serializable> declaredProps = new HashMap<QName, Serializable>(2);
declaredProps.put(PROP_DECLARED_AT, new Date());
declaredProps.put(PROP_DECLARED_BY, AuthenticationUtil.getRunAsUser());
this.nodeService.addAspect(actionedUponNodeRef, ASPECT_DECLARED_RECORD, declaredProps);
AuthenticationUtil.runAsSystem(new RunAsWork<Void>()
recordService.disablePropertyEditableCheck();
try
{
@Override
public Void doWork() throws Exception
// Add the declared aspect
Map<QName, Serializable> declaredProps = new HashMap<QName, Serializable>(2);
declaredProps.put(PROP_DECLARED_AT, new Date());
declaredProps.put(PROP_DECLARED_BY, AuthenticationUtil.getRunAsUser());
this.nodeService.addAspect(actionedUponNodeRef, ASPECT_DECLARED_RECORD, declaredProps);
AuthenticationUtil.runAsSystem(new RunAsWork<Void>()
{
// remove all owner related rights
ownableService.setOwner(actionedUponNodeRef, OwnableService.NO_OWNER);
return null;
}
});
@Override
public Void doWork() throws Exception
{
// remove all owner related rights
ownableService.setOwner(actionedUponNodeRef, OwnableService.NO_OWNER);
return null;
}
});
}
finally
{
recordService.enablePropertyEditableCheck();
}
}
finally
else
{
recordService.enablePropertyEditableCheck();
logger.debug(buildMissingPropertiesErrorString(missingProperties));
action.setParameterValue(ActionExecuterAbstractBase.PARAM_RESULT, "missingProperties");
}
}
else
{
logger.debug(buildMissingPropertiesErrorString(missingProperties));
action.setParameterValue(ActionExecuterAbstractBase.PARAM_RESULT, "missingProperties");
}
}
}
else
{
}
else
{
if (logger.isWarnEnabled())
{
logger.warn(I18NUtil.getMessage(MSG_UNDECLARED_ONLY_RECORDS, actionedUponNodeRef.toString()));
}
}
}
private String buildMissingPropertiesErrorString(List<String> missingProperties)
{
StringBuilder builder = new StringBuilder(255);
builder.append(I18NUtil.getMessage(MSG_NO_DECLARE_MAND_PROP));
builder.append(" ");
for (String missingProperty : missingProperties)
{
builder.append(missingProperty)
.append(", ");
}
return builder.toString();
}
}
/**
* Helper method to check whether all the mandatory properties of the node have been set
*
* @param nodeRef node reference
* @return boolean true if all mandatory properties are set, false otherwise
*/
private boolean mandatoryPropertiesSet(NodeRef nodeRef, List<String> missingProperties)
{
boolean result = true;
private String buildMissingPropertiesErrorString(List<String> missingProperties)
{
StringBuilder builder = new StringBuilder(255);
builder.append(I18NUtil.getMessage(MSG_NO_DECLARE_MAND_PROP));
builder.append(" ");
for (String missingProperty : missingProperties)
{
builder.append(missingProperty).append(", ");
}
return builder.toString();
}
Map<QName, Serializable> nodeRefProps = this.nodeService.getProperties(nodeRef);
/**
* Helper method to check whether all the mandatory properties of the node have been set
*
* @param nodeRef node reference
* @return boolean true if all mandatory properties are set, false otherwise
*/
private boolean mandatoryPropertiesSet(NodeRef nodeRef, List<String> missingProperties)
{
boolean result = true;
QName nodeRefType = this.nodeService.getType(nodeRef);
Map<QName, Serializable> nodeRefProps = this.nodeService.getProperties(nodeRef);
TypeDefinition typeDef = this.dictionaryService.getType(nodeRefType);
for (PropertyDefinition propDef : typeDef.getProperties().values())
{
if (propDef.isMandatory() == true)
{
if (nodeRefProps.get(propDef.getName()) == null)
QName nodeRefType = this.nodeService.getType(nodeRef);
TypeDefinition typeDef = this.dictionaryService.getType(nodeRefType);
for (PropertyDefinition propDef : typeDef.getProperties().values())
{
if (propDef.isMandatory() && nodeRefProps.get(propDef.getName()) == null)
{
logMissingProperty(propDef, missingProperties);
logMissingProperty(propDef, missingProperties);
result = false;
break;
result = false;
break;
}
}
}
}
if (result != false)
{
Set<QName> aspects = this.nodeService.getAspects(nodeRef);
for (QName aspect : aspects)
{
AspectDefinition aspectDef = this.dictionaryService.getAspect(aspect);
for (PropertyDefinition propDef : aspectDef.getProperties().values())
if (result != false)
{
Set<QName> aspects = this.nodeService.getAspects(nodeRef);
for (QName aspect : aspects)
{
if (propDef.isMandatory() == true)
{
if (nodeRefProps.get(propDef.getName()) == null)
{
logMissingProperty(propDef, missingProperties);
AspectDefinition aspectDef = this.dictionaryService.getAspect(aspect);
for (PropertyDefinition propDef : aspectDef.getProperties().values())
{
if (propDef.isMandatory() && nodeRefProps.get(propDef.getName()) == null)
{
logMissingProperty(propDef, missingProperties);
result = false;
break;
}
}
result = false;
break;
}
}
}
}
}
}
return result;
}
return result;
}
/**
* Log information about missing properties.
*
* @param propDef property definition
* @param missingProperties missing properties
*/
private void logMissingProperty(PropertyDefinition propDef, List<String> missingProperties)
{
if (logger.isWarnEnabled())
{
StringBuilder msg = new StringBuilder();
msg.append("Mandatory property missing: ").append(propDef.getName());
logger.warn(msg.toString());
}
missingProperties.add(propDef.getName().toString());
}
/**
* Log information about missing properties.
*
* @param propDef property definition
* @param missingProperties missing properties
*/
private void logMissingProperty(PropertyDefinition propDef, List<String> missingProperties)
{
if (logger.isWarnEnabled())
{
StringBuilder msg = new StringBuilder();
msg.append("Mandatory property missing: ").append(propDef.getName());
logger.warn(msg.toString());
}
missingProperties.add(propDef.getName().toString());
}
}

View File

@@ -74,50 +74,48 @@ public class FileToAction extends RMActionExecuterAbstractBase
@Override
protected void executeImpl(final Action action, final NodeRef actionedUponNodeRef)
{
if (nodeService.exists(actionedUponNodeRef) == true &&
freezeService.isFrozen(actionedUponNodeRef) == false)
if (nodeService.exists(actionedUponNodeRef) &&
freezeService.isFrozen(actionedUponNodeRef) == false &&
recordService.isFiled(actionedUponNodeRef) == false)
{
if (recordService.isFiled(actionedUponNodeRef) == false)
// first look to see if the destination record folder has been specified
NodeRef recordFolder = (NodeRef)action.getParameterValue(PARAM_DESTINATION_RECORD_FOLDER);
if (recordFolder == null)
{
// first look to see if the destination record folder has been specified
NodeRef recordFolder = (NodeRef)action.getParameterValue(PARAM_DESTINATION_RECORD_FOLDER);
if (recordFolder == null)
{
// get the reference to the record folder based on the relative path
recordFolder = createOrResolveRecordFolder(action, actionedUponNodeRef);
}
// get the reference to the record folder based on the relative path
recordFolder = createOrResolveRecordFolder(action, actionedUponNodeRef);
}
if (recordFolder == null)
{
throw new AlfrescoRuntimeException("Unable to execute file to action, because the destination record folder could not be determined.");
}
if (recordFolder == null)
{
throw new AlfrescoRuntimeException("Unable to execute file to action, because the destination record folder could not be determined.");
}
if (recordFolderService.isRecordFolder(recordFolder) == true)
{
final NodeRef finalRecordFolder = recordFolder;
if (recordFolderService.isRecordFolder(recordFolder))
{
final NodeRef finalRecordFolder = recordFolder;
AuthenticationUtil.runAsSystem(new RunAsWork<Void>()
AuthenticationUtil.runAsSystem(new RunAsWork<Void>()
{
@Override
public Void doWork() throws Exception
{
@Override
public Void doWork() throws Exception
try
{
try
{
fileFolderService.move(actionedUponNodeRef, finalRecordFolder, null);
}
catch (FileNotFoundException fileNotFound)
{
throw new AlfrescoRuntimeException("Unable to execute file to action, because the move operation failed.", fileNotFound);
}
return null;
fileFolderService.move(actionedUponNodeRef, finalRecordFolder, null);
}
});
}
else
{
throw new AlfrescoRuntimeException("Unable to execute file to action, becuase the destination was not a record folder.");
}
catch (FileNotFoundException fileNotFound)
{
throw new AlfrescoRuntimeException("Unable to execute file to action, because the move operation failed.", fileNotFound);
}
return null;
}
});
}
else
{
throw new AlfrescoRuntimeException("Unable to execute file to action, becuase the destination was not a record folder.");
}
}
}
@@ -164,7 +162,7 @@ public class FileToAction extends RMActionExecuterAbstractBase
if (recordFolder == null)
{
if (create == true)
if (create)
{
// get the parent into which we are going to create the new record folder
NodeRef parent = resolveParent(context, pathValues, create);
@@ -259,7 +257,7 @@ public class FileToAction extends RMActionExecuterAbstractBase
{
NodeRef result = null;
if (ArrayUtils.isEmpty(pathValues) == true)
if (ArrayUtils.isEmpty(pathValues))
{
// this should never occur since if the path is empty then the context it the resolution of the
// path .. the context must already exist

View File

@@ -306,9 +306,9 @@ public class RecordsManagementAdminServiceImpl implements RecordsManagementAdmin
@Override
public Void doWork() throws Exception
{
if (nodeService.exists(nodeRef) == true &&
dictionaryService.getAllModels().contains(RM_CUSTOM_MODEL) == true &&
isCustomisable(aspectTypeQName) == true)
if (nodeService.exists(nodeRef) &&
dictionaryService.getAllModels().contains(RM_CUSTOM_MODEL) &&
isCustomisable(aspectTypeQName))
{
QName customPropertyAspect = getCustomAspect(aspectTypeQName);
nodeService.addAspect(nodeRef, customPropertyAspect, null);
@@ -336,8 +336,8 @@ public class RecordsManagementAdminServiceImpl implements RecordsManagementAdmin
@Override
public Void doWork() throws Exception
{
if (nodeService.exists(nodeRef) == true &&
isCustomisable(aspectTypeQName) == true)
if (nodeService.exists(nodeRef) &&
isCustomisable(aspectTypeQName))
{
QName customPropertyAspect = getCustomAspect(aspectTypeQName);
nodeService.removeAspect(nodeRef, customPropertyAspect);
@@ -367,13 +367,13 @@ public class RecordsManagementAdminServiceImpl implements RecordsManagementAdmin
@Override
public Void doWork() throws Exception
{
if (dictionaryService.getAllModels().contains(RecordsManagementCustomModel.RM_CUSTOM_MODEL) == true)
if (dictionaryService.getAllModels().contains(RecordsManagementCustomModel.RM_CUSTOM_MODEL))
{
NodeRef nodeRef = childAssocRef.getChildRef();
QName type = nodeService.getType(nodeRef);
while (type != null && ContentModel.TYPE_CMOBJECT.equals(type) == false)
{
if (isCustomisable(type) == true)
if (isCustomisable(type))
{
QName customPropertyAspect = getCustomAspect(type);
nodeService.addAspect(nodeRef, customPropertyAspect, null);
@@ -438,7 +438,7 @@ public class RecordsManagementAdminServiceImpl implements RecordsManagementAdmin
while (type != null && ContentModel.TYPE_CMOBJECT.equals(type) == false)
{
// Add to the list if the type is customisable
if (isCustomisable(type) == true)
if (isCustomisable(type))
{
result.add(type);
}
@@ -463,7 +463,7 @@ public class RecordsManagementAdminServiceImpl implements RecordsManagementAdmin
while (tempAspect != null)
{
// Add to the list if the aspect is customisable
if (isCustomisable(tempAspect) == true)
if (isCustomisable(tempAspect))
{
result.add(tempAspect);
}
@@ -499,33 +499,31 @@ public class RecordsManagementAdminServiceImpl implements RecordsManagementAdmin
{
AspectDefinition aspectDef = dictionaryService.getAspect(aspect);
String name = aspectDef.getName().getLocalName();
if (name.endsWith("Properties") == true)
if (name.endsWith("Properties"))
{
QName type = null;
String prefixString = aspectDef.getDescription(dictionaryService);
if (prefixString == null)
{
// Backward compatibility from previous RM V1.0 custom models
if (CompatibilityModel.NAME_CUSTOM_RECORD_PROPERTIES.equals(name) == true)
if (CompatibilityModel.NAME_CUSTOM_RECORD_PROPERTIES.equals(name))
{
type = RecordsManagementModel.ASPECT_RECORD;
}
else if (CompatibilityModel.NAME_CUSTOM_RECORD_FOLDER_PROPERTIES.equals(name) == true)
else if (CompatibilityModel.NAME_CUSTOM_RECORD_FOLDER_PROPERTIES.equals(name))
{
type = RecordsManagementModel.TYPE_RECORD_FOLDER;
}
else if (CompatibilityModel.NAME_CUSTOM_RECORD_CATEGORY_PROPERTIES.equals(name) == true)
else if (CompatibilityModel.NAME_CUSTOM_RECORD_CATEGORY_PROPERTIES.equals(name))
{
type = RecordsManagementModel.TYPE_RECORD_CATEGORY;
}
else if (CompatibilityModel.NAME_CUSTOM_RECORD_SERIES_PROPERTIES.equals(name) == true)
else if (CompatibilityModel.NAME_CUSTOM_RECORD_SERIES_PROPERTIES.equals(name) &&
// Only add the deprecated record series type as customisable if
// a v1.0 installation has added custom properties
aspectDef.getProperties().size() != 0)
{
// Only add the deprecated record series type as customisable if
// a v1.0 installation has added custom properties
if (aspectDef.getProperties().size() != 0)
{
type = CompatibilityModel.TYPE_RECORD_SERIES;
}
type = CompatibilityModel.TYPE_RECORD_SERIES;
}
}
else
@@ -539,7 +537,7 @@ public class RecordsManagementAdminServiceImpl implements RecordsManagementAdmin
customisableTypes.put(type, aspect);
// Remove customisable type from the pending list
if (pendingCustomisableTypes != null && pendingCustomisableTypes.contains(type) == true)
if (pendingCustomisableTypes != null && pendingCustomisableTypes.contains(type))
{
pendingCustomisableTypes.remove(type);
}
@@ -692,7 +690,7 @@ public class RecordsManagementAdminServiceImpl implements RecordsManagementAdmin
ParameterCheck.mandatory("propertyName", propertyName);
boolean result = false;
if (RM_CUSTOM_URI.equals(propertyName.getNamespaceURI()) == true &&
if (RM_CUSTOM_URI.equals(propertyName.getNamespaceURI()) &&
dictionaryService.getProperty(propertyName) != null)
{
result = true;
@@ -1403,12 +1401,9 @@ public class RecordsManagementAdminServiceImpl implements RecordsManagementAdmin
for (M2ClassAssociation assoc : customAssocsAspect.getAssociations())
{
if (refQName.toPrefixString(namespaceService).equals(assoc.getName()))
if (refQName.toPrefixString(namespaceService).equals(assoc.getName()) && newTitle != null)
{
if (newTitle != null)
{
assoc.setTitle(newTitle);
}
assoc.setTitle(newTitle);
}
}
writeCustomContentModel(modelRef, deserializedModel);

View File

@@ -212,12 +212,9 @@ public class CapabilityServiceImpl implements CapabilityService
for (Capability capability : getCapabilities())
{
Group group = capability.getGroup();
if (group != null)
if (group != null && group.getId().equalsIgnoreCase(id))
{
if (group.getId().equalsIgnoreCase(id))
{
capabilities.add(capability);
}
capabilities.add(capability);
}
}

View File

@@ -331,28 +331,25 @@ public class RMSecurityCommon implements ApplicationContextAware
}
}
}
else if (AssociationRef.class.isAssignableFrom(params[position]))
else if (AssociationRef.class.isAssignableFrom(params[position]) && invocation.getArguments()[position] != null)
{
if (invocation.getArguments()[position] != null)
if (parent)
{
if (parent)
testNodeRef = ((AssociationRef) invocation.getArguments()[position]).getSourceRef();
}
else
{
testNodeRef = ((AssociationRef) invocation.getArguments()[position]).getTargetRef();
}
if (logger.isDebugEnabled())
{
if (nodeService.exists(testNodeRef))
{
testNodeRef = ((AssociationRef) invocation.getArguments()[position]).getSourceRef();
logger.debug("\tPermission test on node " + nodeService.getPath(testNodeRef));
}
else
{
testNodeRef = ((AssociationRef) invocation.getArguments()[position]).getTargetRef();
}
if (logger.isDebugEnabled())
{
if (nodeService.exists(testNodeRef))
{
logger.debug("\tPermission test on node " + nodeService.getPath(testNodeRef));
}
else
{
logger.debug("\tPermission test on non-existing node " + testNodeRef);
}
logger.debug("\tPermission test on non-existing node " + testNodeRef);
}
}
}

View File

@@ -57,12 +57,9 @@ public class HasDispositionDateCapabilityCondition extends AbstractCapabilityCon
result = true;
}
}
else if (filePlanService.isFilePlanComponent(nodeRef))
else if (filePlanService.isFilePlanComponent(nodeRef) && nodeService.getProperty(nodeRef, PROP_DISPOSITION_AS_OF) != null)
{
if (nodeService.getProperty(nodeRef, PROP_DISPOSITION_AS_OF) != null)
{
result = true;
}
result = true;
}
return result;

View File

@@ -62,20 +62,16 @@ public class MayBeScheduledCapabilityCondition extends AbstractCapabilityConditi
boolean result = false;
DispositionSchedule dispositionSchedule = dispositionService.getDispositionSchedule(nodeRef);
if (dispositionSchedule != null)
if (dispositionSchedule != null && checkDispositionLevel(nodeRef, dispositionSchedule))
{
if (checkDispositionLevel(nodeRef, dispositionSchedule) == true)
for (DispositionActionDefinition dispositionActionDefinition : dispositionSchedule.getDispositionActionDefinitions())
{
for (DispositionActionDefinition dispositionActionDefinition : dispositionSchedule.getDispositionActionDefinitions())
if (dispositionActionDefinition.getName().equals(dispositionAction))
{
if (dispositionActionDefinition.getName().equals(dispositionAction) == true)
{
result = true;
break;
}
result = true;
break;
}
}
}
return result;
}
@@ -91,11 +87,11 @@ public class MayBeScheduledCapabilityCondition extends AbstractCapabilityConditi
{
boolean result = false;
boolean isRecordLevelDisposition = dispositionSchedule.isRecordLevelDisposition();
if (recordService.isRecord(nodeRef) == true && isRecordLevelDisposition == true)
if (recordService.isRecord(nodeRef) && isRecordLevelDisposition)
{
result = true;
}
else if (recordFolderService.isRecordFolder(nodeRef) == true && isRecordLevelDisposition == false)
else if (recordFolderService.isRecordFolder(nodeRef) && isRecordLevelDisposition == false)
{
result = true;

View File

@@ -49,25 +49,21 @@ public class ChangeOrDeleteReferencesCapability extends DeclarativeCapability
{
if (target != null)
{
if (getFilePlanService().isFilePlanComponent(target) == true)
if (getFilePlanService().isFilePlanComponent(target) &&
checkConditions(source) &&
checkConditions(target) &&
checkPermissions(source) &&
checkPermissions(target))
{
if (checkConditions(source) == true && checkConditions(target) == true)
{
if (checkPermissions(source) == true && checkPermissions(target) == true)
{
return AccessDecisionVoter.ACCESS_GRANTED;
}
}
return AccessDecisionVoter.ACCESS_GRANTED;
}
}
else
{
if (checkConditions(source) == true)
if (checkConditions(source) &&
checkPermissions(source))
{
if (checkPermissions(source) == true)
{
return AccessDecisionVoter.ACCESS_GRANTED;
}
return AccessDecisionVoter.ACCESS_GRANTED;
}
}

View File

@@ -93,24 +93,21 @@ public class CreateCapability extends DeclarativeCapability
{
if ((assocType == null) || assocType.equals(ContentModel.ASSOC_CONTAINS) == false)
{
if(linkee == null)
if(linkee == null &&
recordService.isRecord(destination) &&
recordService.isDeclared(destination) == false &&
permissionService.hasPermission(destination, RMPermissionModel.FILE_RECORDS) == AccessStatus.ALLOWED)
{
if(recordService.isRecord(destination) && recordService.isDeclared(destination) == false)
{
if (permissionService.hasPermission(destination, RMPermissionModel.FILE_RECORDS) == AccessStatus.ALLOWED)
{
return AccessDecisionVoter.ACCESS_GRANTED;
}
}
return AccessDecisionVoter.ACCESS_GRANTED;
}
else
{
if(recordService.isRecord(linkee) && recordService.isRecord(destination) && recordService.isDeclared(destination) == false)
if (recordService.isRecord(linkee) &&
recordService.isRecord(destination) &&
recordService.isDeclared(destination) == false &&
permissionService.hasPermission(destination, RMPermissionModel.FILE_RECORDS) == AccessStatus.ALLOWED)
{
if (permissionService.hasPermission(destination, RMPermissionModel.FILE_RECORDS) == AccessStatus.ALLOWED)
{
return AccessDecisionVoter.ACCESS_GRANTED;
}
return AccessDecisionVoter.ACCESS_GRANTED;
}
}
@@ -123,40 +120,28 @@ public class CreateCapability extends DeclarativeCapability
conditions.put("capabilityCondition.closed", Boolean.FALSE);
conditions.put("capabilityCondition.cutoff", Boolean.FALSE);
if (checkConditions(destination, conditions) == true)
if (checkConditions(destination, conditions) &&
recordFolderService.isRecordFolder(destination) &&
permissionService.hasPermission(destination, RMPermissionModel.FILE_RECORDS) == AccessStatus.ALLOWED)
{
if (recordFolderService.isRecordFolder(destination))
{
if (permissionService.hasPermission(destination, RMPermissionModel.FILE_RECORDS) == AccessStatus.ALLOWED)
{
return AccessDecisionVoter.ACCESS_GRANTED;
}
}
return AccessDecisionVoter.ACCESS_GRANTED;
}
conditions.put("capabilityCondition.closed", Boolean.TRUE);
if (checkConditions(destination, conditions) == true)
if (checkConditions(destination, conditions) &&
recordFolderService.isRecordFolder(destination) &&
permissionService.hasPermission(getFilePlanService().getFilePlan(destination), RMPermissionModel.DECLARE_RECORDS_IN_CLOSED_FOLDERS) == AccessStatus.ALLOWED)
{
if (recordFolderService.isRecordFolder(destination))
{
if (permissionService.hasPermission(getFilePlanService().getFilePlan(destination), RMPermissionModel.DECLARE_RECORDS_IN_CLOSED_FOLDERS) == AccessStatus.ALLOWED)
{
return AccessDecisionVoter.ACCESS_GRANTED;
}
}
return AccessDecisionVoter.ACCESS_GRANTED;
}
conditions.remove("capabilityCondition.closed");
conditions.put("capabilityCondition.cutoff", Boolean.TRUE);
if (checkConditions(destination, conditions) == true)
if (checkConditions(destination, conditions) &&
recordFolderService.isRecordFolder(destination) &&
permissionService.hasPermission(getFilePlanService().getFilePlan(destination), RMPermissionModel.CREATE_MODIFY_RECORDS_IN_CUTOFF_FOLDERS) == AccessStatus.ALLOWED)
{
if (recordFolderService.isRecordFolder(destination))
{
if (permissionService.hasPermission(getFilePlanService().getFilePlan(destination), RMPermissionModel.CREATE_MODIFY_RECORDS_IN_CUTOFF_FOLDERS) == AccessStatus.ALLOWED)
{
return AccessDecisionVoter.ACCESS_GRANTED;
}
}
return AccessDecisionVoter.ACCESS_GRANTED;
}
}
if (capabilityService.getCapability(RMPermissionModel.CREATE_MODIFY_DESTROY_FOLDERS).evaluate(destination) == AccessDecisionVoter.ACCESS_GRANTED)

View File

@@ -45,15 +45,15 @@ public class DeleteLinksCapability extends DeclarativeCapability
*/
public int evaluate(NodeRef source, NodeRef target)
{
if (getFilePlanService().isFilePlanComponent(source) == true &&
getFilePlanService().isFilePlanComponent(target) == true)
if (getFilePlanService().isFilePlanComponent(source) &&
getFilePlanService().isFilePlanComponent(target))
{
if (checkConditions(source) == true && checkConditions(target) == true)
if (checkConditions(source) &&
checkConditions(target) &&
checkPermissions(source) &&
checkPermissions(target))
{
if (checkPermissions(source) == true && checkPermissions(target) == true)
{
return AccessDecisionVoter.ACCESS_GRANTED;
}
return AccessDecisionVoter.ACCESS_GRANTED;
}
return AccessDecisionVoter.ACCESS_DENIED;
}

View File

@@ -112,13 +112,10 @@ public abstract class AbstractBasePolicy extends RMSecurityCommon
return qname;
}
}
else if (NodeRef.class.isAssignableFrom(params[position]))
else if (NodeRef.class.isAssignableFrom(params[position]) && invocation.getArguments()[position] != null)
{
if (invocation.getArguments()[position] != null)
{
NodeRef nodeRef = (NodeRef) invocation.getArguments()[position];
return nodeService.getType(nodeRef);
}
NodeRef nodeRef = (NodeRef) invocation.getArguments()[position];
return nodeService.getType(nodeRef);
}
return null;
@@ -134,13 +131,10 @@ public abstract class AbstractBasePolicy extends RMSecurityCommon
@SuppressWarnings("rawtypes")
protected QName getQName(MethodInvocation invocation, Class[] params, int position)
{
if (QName.class.isAssignableFrom(params[position]))
if (QName.class.isAssignableFrom(params[position]) && invocation.getArguments()[position] != null)
{
if (invocation.getArguments()[position] != null)
{
QName qname = (QName) invocation.getArguments()[position];
return qname;
}
QName qname = (QName) invocation.getArguments()[position];
return qname;
}
throw new ACLEntryVoterException("Unknown type");
}
@@ -159,13 +153,10 @@ public abstract class AbstractBasePolicy extends RMSecurityCommon
{
return null;
}
if (Serializable.class.isAssignableFrom(params[position]))
if (Serializable.class.isAssignableFrom(params[position]) && invocation.getArguments()[position] != null)
{
if (invocation.getArguments()[position] != null)
{
Serializable property = (Serializable) invocation.getArguments()[position];
return property;
}
Serializable property = (Serializable) invocation.getArguments()[position];
return property;
}
throw new ACLEntryVoterException("Unknown type");
}
@@ -184,13 +175,10 @@ public abstract class AbstractBasePolicy extends RMSecurityCommon
{
return null;
}
if (Map.class.isAssignableFrom(params[position]))
if (Map.class.isAssignableFrom(params[position]) && invocation.getArguments()[position] != null)
{
if (invocation.getArguments()[position] != null)
{
Map<QName, Serializable> properties = (Map<QName, Serializable>) invocation.getArguments()[position];
return properties;
}
Map<QName, Serializable> properties = (Map<QName, Serializable>) invocation.getArguments()[position];
return properties;
}
throw new ACLEntryVoterException("Unknown type");
}

View File

@@ -37,20 +37,14 @@ public class UpdatePolicy extends AbstractBasePolicy
{
NodeRef updatee = getTestNode(invocation, params, cad.getParameters().get(0), cad.isParent());
QName aspectQName = null;
if (cad.getParameters().size() > 1)
if (cad.getParameters().size() > 1 && cad.getParameters().get(1) > -1)
{
if (cad.getParameters().get(1) > -1)
{
aspectQName = getQName(invocation, params, cad.getParameters().get(1));
}
aspectQName = getQName(invocation, params, cad.getParameters().get(1));
}
Map<QName, Serializable> properties = null;
if (cad.getParameters().size() > 2)
if (cad.getParameters().size() > 2 && cad.getParameters().get(2) > -1)
{
if (cad.getParameters().get(2) > -1)
{
properties = getProperties(invocation, params, cad.getParameters().get(2));
}
properties = getProperties(invocation, params, cad.getParameters().get(2));
}
UpdateCapability updateCapability = (UpdateCapability)capabilityService.getCapability("Update");

View File

@@ -543,16 +543,13 @@ public class RMCaveatConfigComponentImpl implements ContentServicePolicies.OnCon
List<String> allowedValues = new ArrayList<String>(0);
String userName = AuthenticationUtil.getRunAsUser();
if (userName != null)
if (userName != null && !(AuthenticationUtil.isMtEnabled() && AuthenticationUtil.isRunAsUserTheSystemUser()))
{
if (! (AuthenticationUtil.isMtEnabled() && AuthenticationUtil.isRunAsUserTheSystemUser()))
{
// note: userName and userGroupNames must not be null
caveatConfig.get(constraintName);
// note: userName and userGroupNames must not be null
caveatConfig.get(constraintName);
Set<String> userGroupFullNames = authorityService.getAuthoritiesForUser(userName);
allowedValues = getRMAllowedValues(userName, userGroupFullNames, constraintName);
}
Set<String> userGroupFullNames = authorityService.getAuthoritiesForUser(userName);
allowedValues = getRMAllowedValues(userName, userGroupFullNames, constraintName);
}
return allowedValues;

View File

@@ -370,13 +370,10 @@ public class RMCaveatConfigServiceImpl implements RMCaveatConfigService
*/
for(String newValue : allowedValueList)
{
if(!oldAllowedValues.contains(newValue))
if(!oldAllowedValues.contains(newValue) && logger.isDebugEnabled())
{
// This is an addition
if(logger.isDebugEnabled())
{
logger.debug("value added to list:" + listQName + ":" + newValue);
}
logger.debug("value added to list:" + listQName + ":" + newValue);
}
}

View File

@@ -170,24 +170,21 @@ public class OnReferencedRecordActionedUpon extends SimpleRecordsManagementEvent
{
public Object doWork() throws Exception
{
if (nodeService.exists(nodeRef) == true)
if (nodeService.exists(nodeRef) && name.equals(actionName))
{
if (name.equals(actionName) == true)
QName type = nodeService.getType(nodeRef);
if (TYPE_TRANSFER.equals(type))
{
QName type = nodeService.getType(nodeRef);
if (TYPE_TRANSFER.equals(type) == true)
List<ChildAssociationRef> assocs = nodeService.getChildAssocs(nodeRef, ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
for (ChildAssociationRef assoc : assocs)
{
List<ChildAssociationRef> assocs = nodeService.getChildAssocs(nodeRef, ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
for (ChildAssociationRef assoc : assocs)
{
processRecordFolder(assoc.getChildRef());
}
}
else
{
processRecordFolder(nodeRef);
processRecordFolder(assoc.getChildRef());
}
}
else
{
processRecordFolder(nodeRef);
}
}
return null;
@@ -200,11 +197,11 @@ public class OnReferencedRecordActionedUpon extends SimpleRecordsManagementEvent
private void processRecordFolder(NodeRef recordFolder)
{
if (recordService.isRecord(recordFolder) == true)
if (recordService.isRecord(recordFolder))
{
processRecord(recordFolder);
}
else if (recordFolderService.isRecordFolder(recordFolder) == true)
else if (recordFolderService.isRecordFolder(recordFolder))
{
for (NodeRef record : recordService.getRecords(recordFolder))
{
@@ -218,7 +215,7 @@ public class OnReferencedRecordActionedUpon extends SimpleRecordsManagementEvent
List<AssociationRef> fromAssocs = recordsManagementAdminService.getCustomReferencesFrom(record);
for (AssociationRef fromAssoc : fromAssocs)
{
if (reference.equals(fromAssoc.getTypeQName()) == true)
if (reference.equals(fromAssoc.getTypeQName()))
{
NodeRef nodeRef = fromAssoc.getTargetRef();
doEventComplete(nodeRef);
@@ -228,7 +225,7 @@ public class OnReferencedRecordActionedUpon extends SimpleRecordsManagementEvent
List<AssociationRef> toAssocs = recordsManagementAdminService.getCustomReferencesTo(record);
for (AssociationRef toAssoc : toAssocs)
{
if (reference.equals(toAssoc.getTypeQName()) == true)
if (reference.equals(toAssoc.getTypeQName()))
{
NodeRef nodeRef = toAssoc.getSourceRef();
doEventComplete(nodeRef);
@@ -246,7 +243,7 @@ public class OnReferencedRecordActionedUpon extends SimpleRecordsManagementEvent
{
RecordsManagementEvent rmEvent = recordsManagementEventService.getEvent(event.getEventName());
if (event.isEventComplete() == false &&
rmEvent.getType().equals(getName()) == true)
rmEvent.getType().equals(getName()))
{
// Complete the event
Map<String, Serializable> params = new HashMap<String, Serializable>(3);

View File

@@ -112,24 +112,21 @@ public class DispositionLifecycleJobExecuter extends RecordsManagementJobExecute
// Run "retain" and "cutoff" actions.
if (dispAction != null)
if (dispAction != null && (dispAction.equalsIgnoreCase("cutoff") ||
dispAction.equalsIgnoreCase("retain")))
{
if (dispAction.equalsIgnoreCase("cutoff") ||
dispAction.equalsIgnoreCase("retain"))
ChildAssociationRef parent = nodeService.getPrimaryParent(currentNode);
if (parent.getTypeQName().equals(RecordsManagementModel.ASSOC_NEXT_DISPOSITION_ACTION))
{
ChildAssociationRef parent = nodeService.getPrimaryParent(currentNode);
if (parent.getTypeQName().equals(RecordsManagementModel.ASSOC_NEXT_DISPOSITION_ACTION))
Map<String, Serializable> props = new HashMap<String, Serializable>(1);
props.put(RMDispositionActionExecuterAbstractBase.PARAM_NO_ERROR_CHECK, Boolean.FALSE);
recordsManagementActionService.executeRecordsManagementAction(parent.getParentRef(), dispAction, props);
if (logger.isDebugEnabled())
{
Map<String, Serializable> props = new HashMap<String, Serializable>(1);
props.put(RMDispositionActionExecuterAbstractBase.PARAM_NO_ERROR_CHECK, Boolean.FALSE);
recordsManagementActionService.executeRecordsManagementAction(parent.getParentRef(), dispAction, props);
if (logger.isDebugEnabled())
{
logger.debug("Processed action: " + dispAction + "on" + parent);
}
logger.debug("Processed action: " + dispAction + "on" + parent);
}
return null;
}
return null;
}
return Boolean.TRUE;
}
@@ -149,7 +146,7 @@ public class DispositionLifecycleJobExecuter extends RecordsManagementJobExecute
}
catch (AlfrescoRuntimeException exception)
{
if (logger.isDebugEnabled() == true)
if (logger.isDebugEnabled())
{
logger.debug(exception);
}

View File

@@ -223,13 +223,11 @@ public abstract class BaseEvaluator implements RecordsManagementModel
boolean result = false;
// Check that we are dealing with the correct kind of RM object
if (kinds == null || checkKinds(nodeRef) == true)
if ((kinds == null || checkKinds(nodeRef) == true) &&
// Check we have the required capabilities
(capabilities == null || checkCapabilities(nodeRef) == true))
{
// Check we have the required capabilities
if (capabilities == null || checkCapabilities(nodeRef) == true)
{
result = evaluateImpl(nodeRef);
}
result = evaluateImpl(nodeRef);
}
return result;

View File

@@ -206,7 +206,7 @@ public class ModelSecurityServiceImpl extends BaseBehaviourBean
{
for (Capability capability : artifact.getCapabilities())
{
if (capability.hasPermission(nodeRef).equals(AccessStatus.ALLOWED) == true)
if (capability.hasPermission(nodeRef).equals(AccessStatus.ALLOWED))
{
result = true;
break;
@@ -277,20 +277,18 @@ public class ModelSecurityServiceImpl extends BaseBehaviourBean
)
public void beforeAddAspect(NodeRef nodeRef, QName aspect)
{
if (enabled == true)
{
if (AuthenticationUtil.getFullyAuthenticatedUser() != null &&
if (enabled &&
AuthenticationUtil.getFullyAuthenticatedUser() != null &&
AuthenticationUtil.isRunAsUserTheSystemUser() == false &&
isProtectedAspect(aspect) == true &&
nodeService.exists(nodeRef) == true &&
isProtectedAspect(aspect) &&
nodeService.exists(nodeRef) &&
canEditProtectedAspect(nodeRef, aspect) == false)
{
// the user can't edit the protected aspect
throw new ModelAccessDeniedException(
"The user " + AuthenticationUtil.getFullyAuthenticatedUser() +
" does not have the permission to add the protected aspect " + aspect.toPrefixString(namespaceService) +
" from the node " + nodeRef.toString());
}
{
// the user can't edit the protected aspect
throw new ModelAccessDeniedException(
"The user " + AuthenticationUtil.getFullyAuthenticatedUser() +
" does not have the permission to add the protected aspect " + aspect.toPrefixString(namespaceService) +
" from the node " + nodeRef.toString());
}
}
@@ -306,20 +304,18 @@ public class ModelSecurityServiceImpl extends BaseBehaviourBean
)
public void beforeRemoveAspect(NodeRef nodeRef, QName aspect)
{
if (enabled == true)
{
if (AuthenticationUtil.getFullyAuthenticatedUser() != null &&
if (enabled &&
AuthenticationUtil.getFullyAuthenticatedUser() != null &&
AuthenticationUtil.isRunAsUserTheSystemUser() == false &&
isProtectedAspect(aspect) == true &&
nodeService.exists(nodeRef) == true &&
isProtectedAspect(aspect) &&
nodeService.exists(nodeRef) &&
canEditProtectedAspect(nodeRef, aspect) == false)
{
// the user can't edit the protected aspect
throw new ModelAccessDeniedException(
"The user " + AuthenticationUtil.getFullyAuthenticatedUser() +
" does not have the permission to remove the protected aspect " + aspect.toPrefixString(namespaceService) +
" from the node " + nodeRef.toString());
}
{
// the user can't edit the protected aspect
throw new ModelAccessDeniedException(
"The user " + AuthenticationUtil.getFullyAuthenticatedUser() +
" does not have the permission to remove the protected aspect " + aspect.toPrefixString(namespaceService) +
" from the node " + nodeRef.toString());
}
}
@@ -335,31 +331,29 @@ public class ModelSecurityServiceImpl extends BaseBehaviourBean
)
public void onUpdateProperties(NodeRef nodeRef, Map<QName, Serializable> before, Map<QName, Serializable> after)
{
if (enabled == true)
{
if (AuthenticationUtil.getFullyAuthenticatedUser() != null &&
if (enabled &&
AuthenticationUtil.getFullyAuthenticatedUser() != null &&
AuthenticationUtil.isRunAsUserTheSystemUser() == false &&
nodeService.exists(nodeRef) == true)
nodeService.exists(nodeRef))
{
for (QName property : after.keySet())
{
for (QName property : after.keySet())
if (isProtectedProperty(property))
{
if (isProtectedProperty(property) == true)
// always allow if this is the first time we are setting the protected property
if (before == null || before.isEmpty() || before.get(property) == null)
{
// always allow if this is the first time we are setting the protected property
if (before == null || before.isEmpty() || before.get(property) == null)
{
return;
}
return;
}
if (EqualsHelper.nullSafeEquals(before.get(property), after.get(property)) == false &&
canEditProtectedProperty(nodeRef, property) == false)
{
// the user can't edit the protected property
throw new ModelAccessDeniedException(
if (EqualsHelper.nullSafeEquals(before.get(property), after.get(property)) == false &&
canEditProtectedProperty(nodeRef, property) == false)
{
// the user can't edit the protected property
throw new ModelAccessDeniedException(
"The user " + AuthenticationUtil.getFullyAuthenticatedUser() +
" does not have the permission to edit the protected property " + property.toPrefixString(namespaceService) +
" on the node " + nodeRef.toString());
}
}
}
}

View File

@@ -536,46 +536,44 @@ public class RecordServiceImpl extends BaseBehaviourBean
{
if (AuthenticationUtil.getFullyAuthenticatedUser() != null &&
AuthenticationUtil.isRunAsUserTheSystemUser() == false &&
nodeService.exists(nodeRef) )
nodeService.exists(nodeRef) &&
isRecord(nodeRef))
{
if (isRecord(nodeRef) )
for (QName property : after.keySet())
{
for (QName property : after.keySet())
Serializable beforeValue = null;
if (before != null)
{
Serializable beforeValue = null;
if (before != null)
{
beforeValue = before.get(property);
}
beforeValue = before.get(property);
}
Serializable afterValue = null;
if (after != null)
{
afterValue = after.get(property);
}
Serializable afterValue = null;
if (after != null)
{
afterValue = after.get(property);
}
boolean propertyUnchanged = false;
if (beforeValue != null && afterValue != null &&
boolean propertyUnchanged = false;
if (beforeValue != null && afterValue != null &&
beforeValue instanceof Date && afterValue instanceof Date)
{
// deal with date values
propertyUnchanged = (((Date)beforeValue).compareTo((Date)afterValue) == 0);
}
else
{
// otherwise
propertyUnchanged = EqualsHelper.nullSafeEquals(beforeValue, afterValue);
}
{
// deal with date values
propertyUnchanged = (((Date)beforeValue).compareTo((Date)afterValue) == 0);
}
else
{
// otherwise
propertyUnchanged = EqualsHelper.nullSafeEquals(beforeValue, afterValue);
}
if (propertyUnchanged == false &&
if (propertyUnchanged == false &&
isPropertyEditable(nodeRef, property) == false)
{
// the user can't edit the record property
throw new ModelAccessDeniedException(
{
// the user can't edit the record property
throw new ModelAccessDeniedException(
"The user " + AuthenticationUtil.getFullyAuthenticatedUser() +
" does not have the permission to edit the record property " + property.toString() +
" on the node " + nodeRef.toString());
}
}
}
}
@@ -1189,12 +1187,10 @@ public class RecordServiceImpl extends BaseBehaviourBean
}
}
if (permissionService.hasPermission(filePlan, RMPermissionModel.EDIT_NON_RECORD_METADATA).equals(AccessStatus.ALLOWED))
if (permissionService.hasPermission(filePlan, RMPermissionModel.EDIT_NON_RECORD_METADATA).equals(AccessStatus.ALLOWED) &&
logger.isDebugEnabled())
{
if (logger.isDebugEnabled() )
{
logger.debug(" ... user has the edit non record metadata permission on the file plan");
}
logger.debug(" ... user has the edit non record metadata permission on the file plan");
}
// END DEBUG ...

View File

@@ -181,7 +181,7 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl
}
// apply the readers to any renditions of the content
if (isRecord(nodeRef) == true)
if (isRecord(nodeRef))
{
List<ChildAssociationRef> assocs = nodeService.getChildAssocs(nodeRef, RenditionModel.ASSOC_RENDITION, RegexQNamePattern.MATCH_ALL);
for (ChildAssociationRef assoc : assocs)
@@ -194,12 +194,12 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl
// add to the extended security roles
addExtendedSecurityRoles(nodeRef, readers, writers);
if (applyToParents == true)
if (applyToParents)
{
// apply the extended readers up the file plan primary hierarchy
NodeRef parent = nodeService.getPrimaryParent(nodeRef).getParentRef();
if (parent != null &&
filePlanService.isFilePlanComponent(parent) == true)
filePlanService.isFilePlanComponent(parent))
{
addExtendedSecurityImpl(parent, readers, null, applyToParents);
addExtendedSecurityImpl(parent, writers, null, applyToParents);
@@ -238,15 +238,11 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl
for (String authority : authorities)
{
if (authority.equals(PermissionService.ALL_AUTHORITIES) == false &&
authority.equals(PermissionService.OWNER_AUTHORITY) == false)
if ((authority.equals(PermissionService.ALL_AUTHORITIES) == false && authority.equals(PermissionService.OWNER_AUTHORITY) == false) &&
(referenceCountMap == null || referenceCountMap.containsKey(authority) == false))
{
if (referenceCountMap == null ||
referenceCountMap.containsKey(authority) == false)
{
// add the authority to the role
filePlanRoleService.assignRoleToAuthority(filePlan, roleName, authority);
}
// add the authority to the role
filePlanRoleService.assignRoleToAuthority(filePlan, roleName, authority);
}
}
@@ -273,7 +269,7 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl
{
if (key.equals(PermissionService.ALL_AUTHORITIES) == false)
{
if (map.containsKey(key) == true)
if (map.containsKey(key))
{
// increment reference count
Integer count = map.get(key);
@@ -305,12 +301,12 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl
@Override
public void removeExtendedSecurity(NodeRef nodeRef, Set<String> readers, Set<String>writers, boolean applyToParents)
{
if (hasExtendedSecurity(nodeRef) == true)
if (hasExtendedSecurity(nodeRef))
{
removeExtendedSecurityImpl(nodeRef, readers, writers);
// remove the readers from any renditions of the content
if (isRecord(nodeRef) == true)
if (isRecord(nodeRef))
{
List<ChildAssociationRef> assocs = nodeService.getChildAssocs(nodeRef, RenditionModel.ASSOC_RENDITION, RegexQNamePattern.MATCH_ALL);
for (ChildAssociationRef assoc : assocs)
@@ -320,12 +316,12 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl
}
}
if (applyToParents == true)
if (applyToParents)
{
// apply the extended readers up the file plan primary hierarchy
NodeRef parent = nodeService.getPrimaryParent(nodeRef).getParentRef();
if (parent != null &&
filePlanService.isFilePlanComponent(parent) == true)
filePlanService.isFilePlanComponent(parent))
{
removeExtendedSecurity(parent, readers, null, applyToParents);
removeExtendedSecurity(parent, writers, null, applyToParents);
@@ -394,7 +390,7 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl
}
// reset the map to null if now empty
if (map != null && map.isEmpty() == true)
if (map != null && map.isEmpty())
{
map = null;
}
@@ -417,7 +413,7 @@ public class ExtendedSecurityServiceImpl extends ServiceBaseImpl
@Override
public void removeAllExtendedSecurity(NodeRef nodeRef, boolean applyToParents)
{
if (hasExtendedSecurity(nodeRef) == true)
if (hasExtendedSecurity(nodeRef))
{
removeExtendedSecurity(nodeRef, getExtendedReaders(nodeRef), getExtendedWriters(nodeRef));
}

View File

@@ -236,12 +236,9 @@ public class TransferServiceImpl extends ServiceBaseImpl implements TransferServ
nodeService.deleteNode(nodeRef);
NodeRef transferNodeRef = (NodeRef) AlfrescoTransactionSupport.getResource(KEY_TRANSFER_NODEREF);
if (transferNodeRef != null)
if (transferNodeRef != null && transferNodeRef.equals(nodeRef))
{
if (transferNodeRef.equals(nodeRef))
{
AlfrescoTransactionSupport.bindResource(KEY_TRANSFER_NODEREF, null);
}
AlfrescoTransactionSupport.bindResource(KEY_TRANSFER_NODEREF, null);
}
}