mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
RM: Fix unit test
* ensure file plan param is provided to create record action * deal with some of the depreaction warnings from recent changes git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@48441 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -48,7 +48,7 @@
|
||||
<bean id="org_alfresco_module_rm_userRolesExtractor" class="org.alfresco.module.org_alfresco_module_rm.audit.AuthenticatedUserRolesDataExtractor">
|
||||
<property name="registry" ref="auditModel.extractorRegistry" />
|
||||
<property name="nodeService" ref="nodeService" />
|
||||
<property name="rmService" ref="recordsManagementService" />
|
||||
<property name="filePlanService" ref="filePlanService" />
|
||||
<property name="filePlanRoleService" ref="filePlanRoleService" />
|
||||
</bean>
|
||||
|
||||
|
@@ -41,7 +41,7 @@
|
||||
<bean id="org_alfresco_module_rm_FilePlanComponentAspect"
|
||||
class="org.alfresco.module.org_alfresco_module_rm.model.behaviour.FilePlanComponentAspect"
|
||||
parent="org_alfresco_module_rm_BaseBehaviour">
|
||||
<property name="recordsManagementService" ref="recordsManagementService"/>
|
||||
<property name="filePlanService" ref="filePlanService"/>
|
||||
</bean>
|
||||
|
||||
<bean id="org_alfresco_module_rm_ScheduledAspect"
|
||||
|
@@ -48,7 +48,7 @@
|
||||
<property name="permissionService" ref="permissionService"/>
|
||||
<property name="recordsManagementService" ref="recordsManagementService"/>
|
||||
<property name="caveatConfigComponent" ref="caveatConfigComponent"/>
|
||||
<!-- <property name="recordService" ref="recordService"/> -->
|
||||
<property name="filePlanService" ref="filePlanService"/>
|
||||
</bean>
|
||||
|
||||
<!-- ====== -->
|
||||
|
@@ -439,10 +439,11 @@
|
||||
<bean id="filePlanService"
|
||||
parent="baseService"
|
||||
class="org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanServiceImpl">
|
||||
<property name="permissionService" ref="PermissionService"/>
|
||||
<property name="nodeDAO" ref="nodeDAO"/>
|
||||
<property name="internalNodeService" ref="nodeService"/>
|
||||
<property name="siteService" ref="SiteService" />
|
||||
<!-- NOTE: for some reason we need to grab these references within the class to avoid cyclic Spring issues! -->
|
||||
<!-- <property name="permissionService" ref="permissionService"/> -->
|
||||
<!-- <property name="nodeDAO" ref="nodeDAO"/> -->
|
||||
<!-- <property name="internalNodeService" ref="nodeService"/> -->
|
||||
<!-- <property name="siteService" ref="SiteService" /> -->
|
||||
</bean>
|
||||
|
||||
<bean id="FilePlanService" class="org.springframework.aop.framework.ProxyFactoryBean">
|
||||
|
@@ -21,7 +21,7 @@ package org.alfresco.module.org_alfresco_module_rm.audit;
|
||||
import java.io.Serializable;
|
||||
import java.util.Set;
|
||||
|
||||
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
import org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.role.Role;
|
||||
@@ -41,7 +41,7 @@ import org.alfresco.service.cmr.repository.NodeService;
|
||||
public final class AuthenticatedUserRolesDataExtractor extends AbstractDataExtractor
|
||||
{
|
||||
private NodeService nodeService;
|
||||
private RecordsManagementService rmService;
|
||||
private FilePlanService filePlanService;
|
||||
private FilePlanRoleService filePlanRoleService;
|
||||
|
||||
/**
|
||||
@@ -53,11 +53,11 @@ public final class AuthenticatedUserRolesDataExtractor extends AbstractDataExtra
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to find the RM root
|
||||
* @param filePlanService file plan service
|
||||
*/
|
||||
public void setRmService(RecordsManagementService rmService)
|
||||
public void setFilePlanService(FilePlanService filePlanService)
|
||||
{
|
||||
this.rmService = rmService;
|
||||
this.filePlanService = filePlanService;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -81,6 +81,9 @@ public final class AuthenticatedUserRolesDataExtractor extends AbstractDataExtra
|
||||
return nodeService.hasAspect((NodeRef)data, RecordsManagementModel.ASPECT_FILE_PLAN_COMPONENT);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.alfresco.repo.audit.extractor.DataExtractor#extractData(java.io.Serializable)
|
||||
*/
|
||||
public Serializable extractData(Serializable value) throws Throwable
|
||||
{
|
||||
NodeRef nodeRef = (NodeRef) value;
|
||||
@@ -92,7 +95,7 @@ public final class AuthenticatedUserRolesDataExtractor extends AbstractDataExtra
|
||||
}
|
||||
|
||||
// Get the rm root
|
||||
NodeRef rmRootNodeRef = rmService.getFilePlan(nodeRef);
|
||||
NodeRef rmRootNodeRef = filePlanService.getFilePlan(nodeRef);
|
||||
|
||||
Set<Role> roles = filePlanRoleService.getRolesByUser(rmRootNodeRef, user);
|
||||
StringBuilder sb = new StringBuilder(100);
|
||||
|
@@ -959,7 +959,7 @@ public class RMAfterInvocationProvider extends RMSecurityCommon
|
||||
String uuid = DefaultTypeConverter.INSTANCE.convert(String.class, filtered.get(ContentModel.PROP_NODE_UUID));
|
||||
StoreRef storeRef = new StoreRef(protocol, identifier);
|
||||
NodeRef nodeRef = new NodeRef(storeRef, uuid);
|
||||
if ((nodeRef == null) || (permissionService.hasPermission(rmService.getFilePlan(nodeRef), RMPermissionModel.VIEW_UPDATE_REASONS_FOR_FREEZE) != AccessStatus.ALLOWED))
|
||||
if ((nodeRef == null) || (permissionService.hasPermission(filePlanService.getFilePlan(nodeRef), RMPermissionModel.VIEW_UPDATE_REASONS_FOR_FREEZE) != AccessStatus.ALLOWED))
|
||||
{
|
||||
filtered.remove(RecordsManagementModel.PROP_HOLD_REASON);
|
||||
}
|
||||
|
@@ -22,6 +22,8 @@ import net.sf.acegisecurity.vote.AccessDecisionVoter;
|
||||
|
||||
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.caveat.RMCaveatConfigComponent;
|
||||
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||
import org.alfresco.repo.transaction.AlfrescoTransactionSupport;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
@@ -32,6 +34,10 @@ import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
/**
|
||||
* Common security functions.
|
||||
*
|
||||
* TODO move methods to the appropriate services
|
||||
*
|
||||
* @author Roy Wetherall
|
||||
* @since 2.0
|
||||
*/
|
||||
@@ -41,10 +47,12 @@ public class RMSecurityCommon
|
||||
|
||||
private static Log logger = LogFactory.getLog(RMSecurityCommon.class);
|
||||
|
||||
/** Services */
|
||||
protected NodeService nodeService;
|
||||
protected PermissionService permissionService;
|
||||
protected RecordsManagementService rmService;
|
||||
protected RMCaveatConfigComponent caveatConfigComponent;
|
||||
protected FilePlanService filePlanService;
|
||||
|
||||
public void setNodeService(NodeService nodeService)
|
||||
{
|
||||
@@ -66,6 +74,11 @@ public class RMSecurityCommon
|
||||
this.caveatConfigComponent = caveatConfigComponent;
|
||||
}
|
||||
|
||||
public void setFilePlanService(FilePlanService filePlanService)
|
||||
{
|
||||
this.filePlanService = filePlanService;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param prefix
|
||||
@@ -165,7 +178,7 @@ public class RMSecurityCommon
|
||||
}
|
||||
|
||||
// Get the file plan for the node
|
||||
NodeRef filePlan = rmService.getFilePlan(nodeRef);
|
||||
NodeRef filePlan = filePlanService.getFilePlan(nodeRef);
|
||||
|
||||
// Admin role
|
||||
if (permissionService.hasPermission(filePlan, RMPermissionModel.ROLE_ADMINISTRATOR) == AccessStatus.ALLOWED)
|
||||
@@ -208,5 +221,4 @@ public class RMSecurityCommon
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -170,7 +170,7 @@ public class DeclarativeCapability extends AbstractCapability
|
||||
protected boolean checkPermissionsImpl(NodeRef nodeRef, String ... permissions)
|
||||
{
|
||||
boolean result = true;
|
||||
NodeRef filePlan = rmService.getFilePlan(nodeRef);
|
||||
NodeRef filePlan = filePlanService.getFilePlan(nodeRef);
|
||||
|
||||
for (String permission : permissions)
|
||||
{
|
||||
|
@@ -122,7 +122,7 @@ public class CreateCapability extends DeclarativeCapability
|
||||
{
|
||||
if (rmService.isRecordFolder(destination))
|
||||
{
|
||||
if (permissionService.hasPermission(rmService.getFilePlan(destination), RMPermissionModel.DECLARE_RECORDS_IN_CLOSED_FOLDERS) == AccessStatus.ALLOWED)
|
||||
if (permissionService.hasPermission(filePlanService.getFilePlan(destination), RMPermissionModel.DECLARE_RECORDS_IN_CLOSED_FOLDERS) == AccessStatus.ALLOWED)
|
||||
{
|
||||
return AccessDecisionVoter.ACCESS_GRANTED;
|
||||
}
|
||||
@@ -135,7 +135,7 @@ public class CreateCapability extends DeclarativeCapability
|
||||
{
|
||||
if (rmService.isRecordFolder(destination))
|
||||
{
|
||||
if (permissionService.hasPermission(rmService.getFilePlan(destination), RMPermissionModel.CREATE_MODIFY_RECORDS_IN_CUTOFF_FOLDERS) == AccessStatus.ALLOWED)
|
||||
if (permissionService.hasPermission(filePlanService.getFilePlan(destination), RMPermissionModel.CREATE_MODIFY_RECORDS_IN_CUTOFF_FOLDERS) == AccessStatus.ALLOWED)
|
||||
{
|
||||
return AccessDecisionVoter.ACCESS_GRANTED;
|
||||
}
|
||||
|
@@ -66,21 +66,9 @@ public class FilePlanServiceImpl extends ServiceBaseImpl
|
||||
/** RM site file plan container */
|
||||
private static final String FILE_PLAN_CONTAINER = "documentLibrary";
|
||||
|
||||
/** Services */
|
||||
private PermissionService permissionService;
|
||||
|
||||
/** Application context */
|
||||
private ApplicationContext applicationContext;
|
||||
|
||||
/** Node DAO */
|
||||
private NodeDAO nodeDAO;
|
||||
|
||||
/** Internal node service */
|
||||
private NodeService internalNodeService;
|
||||
|
||||
/** Site service */
|
||||
private SiteService siteService;
|
||||
|
||||
/**
|
||||
* @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext)
|
||||
*/
|
||||
@@ -96,41 +84,29 @@ public class FilePlanServiceImpl extends ServiceBaseImpl
|
||||
*
|
||||
* @return file plan role service
|
||||
*/
|
||||
public FilePlanRoleService getFilePlanRoleService()
|
||||
protected FilePlanRoleService getFilePlanRoleService()
|
||||
{
|
||||
return (FilePlanRoleService)applicationContext.getBean("FilePlanRoleService");
|
||||
}
|
||||
|
||||
/**
|
||||
* @param permissionService permission service
|
||||
*/
|
||||
public void setPermissionService(PermissionService permissionService)
|
||||
protected PermissionService getPermissionService()
|
||||
{
|
||||
this.permissionService = permissionService;
|
||||
return (PermissionService)applicationContext.getBean("permissionService");
|
||||
}
|
||||
|
||||
/**
|
||||
* @param nodeDAO node DAO
|
||||
*/
|
||||
public void setNodeDAO(NodeDAO nodeDAO)
|
||||
protected NodeDAO getNodeDAO()
|
||||
{
|
||||
this.nodeDAO = nodeDAO;
|
||||
return (NodeDAO)applicationContext.getBean("nodeDAO");
|
||||
}
|
||||
|
||||
/**
|
||||
* @param internalNodeService node service (internal bean)
|
||||
*/
|
||||
public void setInternalNodeService(NodeService internalNodeService)
|
||||
protected NodeService getInternalNodeService()
|
||||
{
|
||||
this.internalNodeService = internalNodeService;
|
||||
return (NodeService)applicationContext.getBean("nodeService");
|
||||
}
|
||||
|
||||
/**
|
||||
* @param siteService site service
|
||||
*/
|
||||
public void setSiteService(SiteService siteService)
|
||||
protected SiteService getSiteService()
|
||||
{
|
||||
this.siteService = siteService;
|
||||
return (SiteService)applicationContext.getBean("SiteService");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -161,7 +137,7 @@ public class FilePlanServiceImpl extends ServiceBaseImpl
|
||||
final Set<NodeRef> results = new HashSet<NodeRef>();
|
||||
Set<QName> aspects = new HashSet<QName>(1);
|
||||
aspects.add(ASPECT_RECORDS_MANAGEMENT_ROOT);
|
||||
nodeDAO.getNodesWithAspects(aspects, Long.MIN_VALUE, Long.MAX_VALUE, new NodeDAO.NodeRefQueryCallback()
|
||||
getNodeDAO().getNodesWithAspects(aspects, Long.MIN_VALUE, Long.MAX_VALUE, new NodeDAO.NodeRefQueryCallback()
|
||||
{
|
||||
@Override
|
||||
public boolean handle(Pair<Long, NodeRef> nodePair)
|
||||
@@ -187,7 +163,7 @@ public class FilePlanServiceImpl extends ServiceBaseImpl
|
||||
NodeRef result = null;
|
||||
if (nodeRef != null)
|
||||
{
|
||||
result = (NodeRef)internalNodeService.getProperty(nodeRef, PROP_ROOT_NODEREF);
|
||||
result = (NodeRef)getInternalNodeService().getProperty(nodeRef, PROP_ROOT_NODEREF);
|
||||
if (result == null)
|
||||
{
|
||||
if (instanceOf(nodeRef, TYPE_FILE_PLAN) == true)
|
||||
@@ -196,7 +172,7 @@ public class FilePlanServiceImpl extends ServiceBaseImpl
|
||||
}
|
||||
else
|
||||
{
|
||||
ChildAssociationRef parentAssocRef = internalNodeService.getPrimaryParent(nodeRef);
|
||||
ChildAssociationRef parentAssocRef = getInternalNodeService().getPrimaryParent(nodeRef);
|
||||
if (parentAssocRef != null)
|
||||
{
|
||||
result = getFilePlan(parentAssocRef.getParentRef());
|
||||
@@ -216,12 +192,12 @@ public class FilePlanServiceImpl extends ServiceBaseImpl
|
||||
{
|
||||
NodeRef filePlan = null;
|
||||
|
||||
SiteInfo siteInfo = siteService.getSite(siteId);
|
||||
SiteInfo siteInfo = getSiteService().getSite(siteId);
|
||||
if (siteInfo != null)
|
||||
{
|
||||
if (siteService.hasContainer(siteId, FILE_PLAN_CONTAINER) == true)
|
||||
if (getSiteService().hasContainer(siteId, FILE_PLAN_CONTAINER) == true)
|
||||
{
|
||||
NodeRef nodeRef = siteService.getContainer(siteId, FILE_PLAN_CONTAINER);
|
||||
NodeRef nodeRef = getSiteService().getContainer(siteId, FILE_PLAN_CONTAINER);
|
||||
if (instanceOf(nodeRef, TYPE_FILE_PLAN) == true)
|
||||
{
|
||||
filePlan = nodeRef;
|
||||
@@ -295,10 +271,10 @@ public class FilePlanServiceImpl extends ServiceBaseImpl
|
||||
properties).getChildRef();
|
||||
|
||||
// set inheritance to false
|
||||
permissionService.setInheritParentPermissions(container, false);
|
||||
permissionService.setPermission(container, allRoles, RMPermissionModel.READ_RECORDS, true);
|
||||
permissionService.setPermission(container, ExtendedReaderDynamicAuthority.EXTENDED_READER, RMPermissionModel.READ_RECORDS, true);
|
||||
permissionService.setPermission(container, ExtendedWriterDynamicAuthority.EXTENDED_WRITER, RMPermissionModel.FILING, true);
|
||||
getPermissionService().setInheritParentPermissions(container, false);
|
||||
getPermissionService().setPermission(container, allRoles, RMPermissionModel.READ_RECORDS, true);
|
||||
getPermissionService().setPermission(container, ExtendedReaderDynamicAuthority.EXTENDED_READER, RMPermissionModel.READ_RECORDS, true);
|
||||
getPermissionService().setPermission(container, ExtendedWriterDynamicAuthority.EXTENDED_WRITER, RMPermissionModel.FILING, true);
|
||||
|
||||
// TODO set the admin users to have filing permissions on the unfiled container!!!
|
||||
// TODO we will need to be able to get a list of the admin roles from the service
|
||||
|
@@ -21,7 +21,7 @@ package org.alfresco.module.org_alfresco_module_rm.model.behaviour;
|
||||
import java.io.Serializable;
|
||||
import java.util.Map;
|
||||
|
||||
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
import org.alfresco.repo.copy.AbstractCopyBehaviourCallback;
|
||||
import org.alfresco.repo.copy.CopyBehaviourCallback;
|
||||
@@ -50,12 +50,12 @@ public class FilePlanComponentAspect implements RecordsManagementModel,
|
||||
/** Policy component */
|
||||
private PolicyComponent policyComponent;
|
||||
|
||||
/** Records Management Service */
|
||||
private RecordsManagementService recordsManagementService;
|
||||
|
||||
/** Node service */
|
||||
private NodeService nodeService;
|
||||
|
||||
/** File plan service */
|
||||
private FilePlanService filePlanService;
|
||||
|
||||
/**
|
||||
* Set the policy component
|
||||
* @param policyComponent policy component
|
||||
@@ -65,15 +65,6 @@ public class FilePlanComponentAspect implements RecordsManagementModel,
|
||||
this.policyComponent = policyComponent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the records management service
|
||||
* @param recordsManagementService records management service
|
||||
*/
|
||||
public void setRecordsManagementService(RecordsManagementService recordsManagementService)
|
||||
{
|
||||
this.recordsManagementService = recordsManagementService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set node service
|
||||
* @param nodeService node service
|
||||
@@ -83,6 +74,14 @@ public class FilePlanComponentAspect implements RecordsManagementModel,
|
||||
this.nodeService = nodeService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param filePlanService file plan service
|
||||
*/
|
||||
public void setFilePlanService(FilePlanService filePlanService)
|
||||
{
|
||||
this.filePlanService = filePlanService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Bean initialisation method
|
||||
*/
|
||||
@@ -116,7 +115,7 @@ public class FilePlanComponentAspect implements RecordsManagementModel,
|
||||
if (nodeService.exists(nodeRef) == true)
|
||||
{
|
||||
// Look up the root and set on the aspect if found
|
||||
NodeRef root = recordsManagementService.getFilePlan(nodeRef);
|
||||
NodeRef root = filePlanService.getFilePlan(nodeRef);
|
||||
if (root != null)
|
||||
{
|
||||
nodeService.setProperty(nodeRef, PROP_ROOT_NODEREF, root);
|
||||
@@ -143,7 +142,7 @@ public class FilePlanComponentAspect implements RecordsManagementModel,
|
||||
nodeService.exists(newChildAssocRef.getChildRef()) == true)
|
||||
{
|
||||
// Look up the root and re-set the value currently stored on the aspect
|
||||
NodeRef root = recordsManagementService.getFilePlan(newChildAssocRef.getParentRef());
|
||||
NodeRef root = filePlanService.getFilePlan(newChildAssocRef.getParentRef());
|
||||
// NOTE: set the null value if no root found
|
||||
nodeService.setProperty(newChildAssocRef.getChildRef(), PROP_ROOT_NODEREF, root);
|
||||
}
|
||||
@@ -185,7 +184,7 @@ public class FilePlanComponentAspect implements RecordsManagementModel,
|
||||
Map<QName, Serializable> properties)
|
||||
{
|
||||
// Only copy the root node reference if the new value can be looked up via the parent
|
||||
NodeRef root = recordsManagementService.getFilePlan(copyDetails.getTargetParentNodeRef());
|
||||
NodeRef root = filePlanService.getFilePlan(copyDetails.getTargetParentNodeRef());
|
||||
if (root != null)
|
||||
{
|
||||
properties.put(PROP_ROOT_NODEREF, root);
|
||||
|
@@ -83,6 +83,7 @@ public class HideRecordActionTest extends BaseRMTestCase
|
||||
|
||||
// Create a record from that document
|
||||
Action createAction = dmActionService.createAction(CreateRecordAction.NAME);
|
||||
createAction.setParameterValue(CreateRecordAction.PARAM_FILE_PLAN, filePlan);
|
||||
dmActionService.executeAction(createAction, doc);
|
||||
|
||||
// Check if the document is a record now
|
||||
|
Reference in New Issue
Block a user