diff --git a/README.txt b/README.txt index 15d8f9c13e..976bf6e927 100644 --- a/README.txt +++ b/README.txt @@ -19,6 +19,8 @@ Using Eclipse - Import projects as Maven projects ("Import > Maven > Existing Maven Projects") - Browse to the code directory of your project and select "rm-server/pom.xml" and "rm-share/pom.xml". DO NOT select the parent "/pom.xml" - Open the Ant view and add the build files for both modules ("build.xml") + - If you are not working on a Windows machine you need to change the value of a property called "mvn.exec". + To do this create a file called "build.local.properties" under the code directory and change the value in that new file. - Run the "prepareEnv" target for rm-server which will prepare the development environment. This target must be run just once. - Now "fullBuild" target can be run which will create the amp file, apply it to the war file and copy the war file to webapps folder. diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/evaluator/TransferEvaluator.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/evaluator/TransferEvaluator.java index 06a89aa953..56cb735b6a 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/evaluator/TransferEvaluator.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/evaluator/TransferEvaluator.java @@ -22,9 +22,13 @@ import java.util.List; import org.alfresco.module.org_alfresco_module_rm.jscript.app.BaseEvaluator; import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; +import org.alfresco.repo.security.authentication.AuthenticationUtil; +import org.alfresco.repo.security.permissions.AccessDeniedException; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.RegexQNamePattern; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; /** * Evaluates whether the node in question is transferring is either a transfer or accession. @@ -33,6 +37,9 @@ import org.alfresco.service.namespace.RegexQNamePattern; */ public class TransferEvaluator extends BaseEvaluator { + /** Logger */ + private static Log logger = LogFactory.getLog(TransferEvaluator.class); + /** indicates whether we are looking for accessions or transfers */ private boolean transferAccessionIndicator = false; @@ -55,8 +62,18 @@ public class TransferEvaluator extends BaseEvaluator NodeRef transfer = getTransferNodeRef(nodeRef); if (transfer != null) { - boolean actual = ((Boolean)nodeService.getProperty(transfer, RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR)).booleanValue(); - result = (actual == transferAccessionIndicator); + try + { + boolean actual = ((Boolean)nodeService.getProperty(transfer, RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR)).booleanValue(); + result = (actual == transferAccessionIndicator); + } + catch (AccessDeniedException ade) + { + logger.info("The user '" + + AuthenticationUtil.getFullyAuthenticatedUser() + + "' does not have permissions on the node '" + + transfer + "'."); + } } return result; diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/InplaceRecordServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/InplaceRecordServiceImpl.java index e90693e924..16bd7effb9 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/InplaceRecordServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/InplaceRecordServiceImpl.java @@ -18,6 +18,8 @@ */ package org.alfresco.module.org_alfresco_module_rm.record; +import static org.alfresco.model.ContentModel.ASPECT_PENDING_DELETE; + import java.util.List; import java.util.Set; @@ -96,7 +98,9 @@ public class InplaceRecordServiceImpl extends ServiceBaseImpl implements Inplace List parentAssocs = nodeService.getParentAssocs(nodeRef); for (ChildAssociationRef childAssociationRef : parentAssocs) { - if (!childAssociationRef.isPrimary() && childAssociationRef.getParentRef().equals(originatingLocation)) + if (!childAssociationRef.isPrimary() && + childAssociationRef.getParentRef().equals(originatingLocation) && + !nodeService.hasAspect(childAssociationRef.getChildRef(), ASPECT_PENDING_DELETE)) { nodeService.removeChildAssociation(childAssociationRef); break;