mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
RM-1800 (Transfers are not displayed for non-rm-admin users)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.3@93971 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -446,6 +446,8 @@
|
|||||||
<property name="policyComponent" ref="policyComponent"/>
|
<property name="policyComponent" ref="policyComponent"/>
|
||||||
<property name="ownableService" ref="ownableService" />
|
<property name="ownableService" ref="ownableService" />
|
||||||
<property name="authorityService" ref="AuthorityService" />
|
<property name="authorityService" ref="AuthorityService" />
|
||||||
|
<property name="filePlanRoleService" ref="FilePlanRoleService" />
|
||||||
|
<property name="filePlanService" ref="FilePlanService" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="FilePlanPermissionService" class="org.springframework.aop.framework.ProxyFactoryBean">
|
<bean id="FilePlanPermissionService" class="org.springframework.aop.framework.ProxyFactoryBean">
|
||||||
@@ -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.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.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.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.createRecordFromCopy=RM_ALLOW
|
||||||
org.alfresco.module.org_alfresco_module_rm.record.RecordService.file=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
|
org.alfresco.module.org_alfresco_module_rm.record.RecordService.isPropertyEditable=RM.Read.0
|
||||||
|
@@ -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.jscript.app.BaseEvaluator;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
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.ChildAssociationRef;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.namespace.RegexQNamePattern;
|
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.
|
* 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
|
public class TransferEvaluator extends BaseEvaluator
|
||||||
{
|
{
|
||||||
/** Logger */
|
|
||||||
private static Log logger = LogFactory.getLog(TransferEvaluator.class);
|
|
||||||
|
|
||||||
/** indicates whether we are looking for accessions or transfers */
|
/** indicates whether we are looking for accessions or transfers */
|
||||||
private boolean transferAccessionIndicator = false;
|
private boolean transferAccessionIndicator = false;
|
||||||
|
|
||||||
@@ -62,18 +55,8 @@ public class TransferEvaluator extends BaseEvaluator
|
|||||||
NodeRef transfer = getTransferNodeRef(nodeRef);
|
NodeRef transfer = getTransferNodeRef(nodeRef);
|
||||||
if (transfer != null)
|
if (transfer != null)
|
||||||
{
|
{
|
||||||
try
|
boolean actual = ((Boolean)nodeService.getProperty(transfer, RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR)).booleanValue();
|
||||||
{
|
result = (actual == transferAccessionIndicator);
|
||||||
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;
|
return result;
|
||||||
|
@@ -32,6 +32,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
import org.alfresco.error.AlfrescoRuntimeException;
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
|
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.role.FilePlanRoleService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.util.ServiceBaseImpl;
|
import org.alfresco.module.org_alfresco_module_rm.util.ServiceBaseImpl;
|
||||||
import org.alfresco.repo.node.NodeServicePolicies;
|
import org.alfresco.repo.node.NodeServicePolicies;
|
||||||
@@ -76,6 +77,12 @@ public class FilePlanPermissionServiceImpl extends ServiceBaseImpl
|
|||||||
/** Authority service */
|
/** Authority service */
|
||||||
private AuthorityService authorityService;
|
private AuthorityService authorityService;
|
||||||
|
|
||||||
|
/** File plan role service */
|
||||||
|
private FilePlanRoleService filePlanRoleService;
|
||||||
|
|
||||||
|
/** File plan service */
|
||||||
|
private FilePlanService filePlanService;
|
||||||
|
|
||||||
/** Logger */
|
/** Logger */
|
||||||
private static final Log LOGGER = LogFactory.getLog(FilePlanPermissionServiceImpl.class);
|
private static final Log LOGGER = LogFactory.getLog(FilePlanPermissionServiceImpl.class);
|
||||||
|
|
||||||
@@ -168,6 +175,46 @@ public class FilePlanPermissionServiceImpl extends ServiceBaseImpl
|
|||||||
this.authorityService = authorityService;
|
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)
|
* @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)
|
public void onCreateTransfer(final ChildAssociationRef childAssocRef)
|
||||||
{
|
{
|
||||||
mandatory("childAssocRef", 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user