diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml
index a1c7152d0d..ddbb398b5d 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml
@@ -446,6 +446,8 @@
+
+
@@ -1102,7 +1104,7 @@
org.alfresco.module.org_alfresco_module_rm.record.RecordService.isDeclared=RM.Read.0
org.alfresco.module.org_alfresco_module_rm.record.RecordService.isFiled=RM.Read.0
org.alfresco.module.org_alfresco_module_rm.record.RecordService.createRecord=RM_ALLOW
- org.alfresco.module.org_alfresco_module_rm.record.RecordService.createRecordFromContent=RM.Create.0
+ org.alfresco.module.org_alfresco_module_rm.record.RecordService.createRecordFromContent=RM.Create.0
org.alfresco.module.org_alfresco_module_rm.record.RecordService.createRecordFromCopy=RM_ALLOW
org.alfresco.module.org_alfresco_module_rm.record.RecordService.file=RM_ALLOW
org.alfresco.module.org_alfresco_module_rm.record.RecordService.isPropertyEditable=RM.Read.0
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 56cb735b6a..06a89aa953 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,13 +22,9 @@ 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.
@@ -37,9 +33,6 @@ import org.apache.commons.logging.LogFactory;
*/
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;
@@ -62,18 +55,8 @@ public class TransferEvaluator extends BaseEvaluator
NodeRef transfer = getTransferNodeRef(nodeRef);
if (transfer != null)
{
- 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 + "'.");
- }
+ boolean actual = ((Boolean)nodeService.getProperty(transfer, RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR)).booleanValue();
+ result = (actual == transferAccessionIndicator);
}
return result;
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/security/FilePlanPermissionServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/security/FilePlanPermissionServiceImpl.java
index dd9a9d0b9e..2c4dbcea54 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/security/FilePlanPermissionServiceImpl.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/security/FilePlanPermissionServiceImpl.java
@@ -32,6 +32,7 @@ import java.util.Set;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
+import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
import org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService;
import org.alfresco.module.org_alfresco_module_rm.util.ServiceBaseImpl;
import org.alfresco.repo.node.NodeServicePolicies;
@@ -76,6 +77,12 @@ public class FilePlanPermissionServiceImpl extends ServiceBaseImpl
/** Authority service */
private AuthorityService authorityService;
+ /** File plan role service */
+ private FilePlanRoleService filePlanRoleService;
+
+ /** File plan service */
+ private FilePlanService filePlanService;
+
/** Logger */
private static final Log LOGGER = LogFactory.getLog(FilePlanPermissionServiceImpl.class);
@@ -168,6 +175,46 @@ public class FilePlanPermissionServiceImpl extends ServiceBaseImpl
this.authorityService = authorityService;
}
+ /**
+ * Gets the file plan role service
+ *
+ * @return The file plan role service
+ */
+ public FilePlanRoleService getFilePlanRoleService()
+ {
+ return this.filePlanRoleService;
+ }
+
+ /**
+ * Sets the file plan role service
+ *
+ * @param filePlanRoleService The file plan role service to set
+ */
+ public void setFilePlanRoleService(FilePlanRoleService filePlanRoleService)
+ {
+ this.filePlanRoleService = filePlanRoleService;
+ }
+
+ /**
+ * Gets the file plan service
+ *
+ * @return The file plan service
+ */
+ public FilePlanService getFilePlanService()
+ {
+ return this.filePlanService;
+ }
+
+ /**
+ * Sets the file plan service
+ *
+ * @param filePlanService The file plan service to set
+ */
+ public void setFilePlanService(FilePlanService filePlanService)
+ {
+ this.filePlanService = filePlanService;
+ }
+
/**
* @see org.alfresco.module.org_alfresco_module_rm.security.FilePlanPermissionService#setupRecordCategoryPermissions(org.alfresco.service.cmr.repository.NodeRef)
*/
@@ -256,7 +303,13 @@ public class FilePlanPermissionServiceImpl extends ServiceBaseImpl
public void onCreateTransfer(final ChildAssociationRef childAssocRef)
{
mandatory("childAssocRef", childAssocRef);
- setupPermissions(childAssocRef.getParentRef(), childAssocRef.getChildRef());
+ NodeRef childRef = childAssocRef.getChildRef();
+ setupPermissions(childAssocRef.getParentRef(), childRef);
+ // Give read permissions for all RM roles for the transfer folders (see RM-1800).
+ // This behaviour will be changed once the add manage permission option is added in the UI for the transfers containers.
+ NodeRef filePlan = getFilePlanService().getFilePlan(childRef);
+ String allRoles = getFilePlanRoleService().getAllRolesContainerGroup(filePlan);
+ getPermissionService().setPermission(childRef, allRoles, READ_RECORDS, true);
}
/**