mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
RM-978 (Unable to navigate to copied folder from a collaboration site to RM site)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.3@94453 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -57,7 +57,7 @@
|
|||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<!-- dm model type -->
|
<!-- dm model type -->
|
||||||
<bean id="dm.object" class="org.alfresco.module.org_alfresco_module_rm.model.rma.type.ObjectType" parent="rm.baseBehaviour"/>
|
<bean id="cm.object" class="org.alfresco.module.org_alfresco_module_rm.model.rma.type.CmObjectType" parent="rm.baseBehaviour"/>
|
||||||
|
|
||||||
<!-- rma model types -->
|
<!-- rma model types -->
|
||||||
|
|
||||||
|
@@ -19,6 +19,7 @@
|
|||||||
<property name="relationshipService" ref="RelationshipService" />
|
<property name="relationshipService" ref="RelationshipService" />
|
||||||
<property name="recordService" ref="RecordService" />
|
<property name="recordService" ref="RecordService" />
|
||||||
<property name="modelSecurityService" ref="ModelSecurityService" />
|
<property name="modelSecurityService" ref="ModelSecurityService" />
|
||||||
|
<property name="cmObjectType" ref="cm.object" />
|
||||||
</bean>
|
</bean>
|
||||||
<bean class="org.alfresco.util.BeanExtender">
|
<bean class="org.alfresco.util.BeanExtender">
|
||||||
<property name="beanName" value="versionService" />
|
<property name="beanName" value="versionService" />
|
||||||
|
@@ -42,15 +42,58 @@ import org.alfresco.service.namespace.QName;
|
|||||||
(
|
(
|
||||||
defaultType = "cm:cmobject"
|
defaultType = "cm:cmobject"
|
||||||
)
|
)
|
||||||
public class ObjectType extends BaseBehaviourBean implements NodeServicePolicies.OnMoveNodePolicy, CopyServicePolicies.BeforeCopyPolicy
|
public class CmObjectType extends BaseBehaviourBean implements NodeServicePolicies.OnMoveNodePolicy, CopyServicePolicies.BeforeCopyPolicy
|
||||||
{
|
{
|
||||||
|
/** Move behaviour name */
|
||||||
|
private static final String MOVE_BEHAVIOUR_NAME = "onMoveCmObjectType";
|
||||||
|
|
||||||
|
/** Copy behaviour name */
|
||||||
|
private static final String COPY_BEHAVIOUR_NAME = "onCopyCmObjectType";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable the move behaviour for this transaction
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void disableMove()
|
||||||
|
{
|
||||||
|
getBehaviour(MOVE_BEHAVIOUR_NAME).disable();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable the move behaviour for this transaction
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void enableMove()
|
||||||
|
{
|
||||||
|
getBehaviour(MOVE_BEHAVIOUR_NAME).enable();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable the copy behaviour for this transaction
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void disableCopy()
|
||||||
|
{
|
||||||
|
getBehaviour(COPY_BEHAVIOUR_NAME).disable();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable the copy behaviour for this transaction
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void enableCopy()
|
||||||
|
{
|
||||||
|
getBehaviour(COPY_BEHAVIOUR_NAME).enable();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.alfresco.repo.node.NodeServicePolicies.OnMoveNodePolicy#onMoveNode(org.alfresco.service.cmr.repository.ChildAssociationRef, org.alfresco.service.cmr.repository.ChildAssociationRef)
|
* @see org.alfresco.repo.node.NodeServicePolicies.OnMoveNodePolicy#onMoveNode(org.alfresco.service.cmr.repository.ChildAssociationRef, org.alfresco.service.cmr.repository.ChildAssociationRef)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Behaviour
|
@Behaviour
|
||||||
(
|
(
|
||||||
kind = BehaviourKind.CLASS
|
kind = BehaviourKind.CLASS,
|
||||||
|
name = MOVE_BEHAVIOUR_NAME
|
||||||
)
|
)
|
||||||
public void onMoveNode(ChildAssociationRef oldChildAssocRef, ChildAssociationRef newChildAssocRef)
|
public void onMoveNode(ChildAssociationRef oldChildAssocRef, ChildAssociationRef newChildAssocRef)
|
||||||
{
|
{
|
||||||
@@ -92,11 +135,11 @@ public class ObjectType extends BaseBehaviourBean implements NodeServicePolicies
|
|||||||
@Override
|
@Override
|
||||||
@Behaviour
|
@Behaviour
|
||||||
(
|
(
|
||||||
kind = BehaviourKind.CLASS
|
kind = BehaviourKind.CLASS,
|
||||||
|
name = COPY_BEHAVIOUR_NAME
|
||||||
)
|
)
|
||||||
public void beforeCopy(QName classRef, NodeRef sourceNodeRef, NodeRef targetNodeRef)
|
public void beforeCopy(QName classRef, NodeRef sourceNodeRef, NodeRef targetNodeRef)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
mandatory("sourceNodeRef", sourceNodeRef);
|
mandatory("sourceNodeRef", sourceNodeRef);
|
||||||
mandatory("targetNodeRef", targetNodeRef);
|
mandatory("targetNodeRef", targetNodeRef);
|
||||||
|
|
||||||
@@ -118,6 +161,5 @@ public class ObjectType extends BaseBehaviourBean implements NodeServicePolicies
|
|||||||
{
|
{
|
||||||
throw new AlfrescoRuntimeException("Nothing can be copied from a collaboration site into a RM site.");
|
throw new AlfrescoRuntimeException("Nothing can be copied from a collaboration site into a RM site.");
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -29,6 +29,7 @@ import java.util.Map;
|
|||||||
import org.alfresco.error.AlfrescoRuntimeException;
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
|
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.model.rma.type.CmObjectType;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.model.security.ModelSecurityService;
|
import org.alfresco.module.org_alfresco_module_rm.model.security.ModelSecurityService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
|
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.relationship.RelationshipService;
|
import org.alfresco.module.org_alfresco_module_rm.relationship.RelationshipService;
|
||||||
@@ -83,6 +84,9 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
|
|||||||
/** model security service */
|
/** model security service */
|
||||||
private ModelSecurityService modelSecurityService;
|
private ModelSecurityService modelSecurityService;
|
||||||
|
|
||||||
|
/** cm object type */
|
||||||
|
private CmObjectType cmObjectType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param filePlanService file plan service
|
* @param filePlanService file plan service
|
||||||
*/
|
*/
|
||||||
@@ -123,6 +127,14 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
|
|||||||
this.modelSecurityService = modelSecurityService;
|
this.modelSecurityService = modelSecurityService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param cmObjectType the cmObjectType to set
|
||||||
|
*/
|
||||||
|
public void setCmObjectType(CmObjectType cmObjectType)
|
||||||
|
{
|
||||||
|
this.cmObjectType = cmObjectType;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.alfresco.repo.version.Version2ServiceImpl#createVersion(org.alfresco.service.cmr.repository.NodeRef, java.util.Map, int)
|
* @see org.alfresco.repo.version.Version2ServiceImpl#createVersion(org.alfresco.service.cmr.repository.NodeRef, java.util.Map, int)
|
||||||
*/
|
*/
|
||||||
@@ -304,6 +316,9 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
|
|||||||
// create a copy of the source node and place in the file plan
|
// create a copy of the source node and place in the file plan
|
||||||
final NodeRef nodeRef = (NodeRef)standardVersionProperties.get(Version2Model.PROP_QNAME_FROZEN_NODE_REF);
|
final NodeRef nodeRef = (NodeRef)standardVersionProperties.get(Version2Model.PROP_QNAME_FROZEN_NODE_REF);
|
||||||
|
|
||||||
|
cmObjectType.disableCopy();
|
||||||
|
try
|
||||||
|
{
|
||||||
// create record
|
// create record
|
||||||
final NodeRef record = recordService.createRecordFromCopy(filePlan, nodeRef);
|
final NodeRef record = recordService.createRecordFromCopy(filePlan, nodeRef);
|
||||||
|
|
||||||
@@ -342,6 +357,11 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
|
|||||||
freezeAuditableAspect(nodeRef, versionNodeRef);
|
freezeAuditableAspect(nodeRef, versionNodeRef);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
{
|
||||||
|
cmObjectType.enableCopy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
{
|
{
|
||||||
// enable model security check
|
// enable model security check
|
||||||
modelSecurityService.enable();
|
modelSecurityService.enable();
|
||||||
|
@@ -43,8 +43,8 @@ import org.junit.runners.Suite.SuiteClasses;
|
|||||||
RM994Test.class,
|
RM994Test.class,
|
||||||
RM1039Test.class,
|
RM1039Test.class,
|
||||||
RM1799Test.class,
|
RM1799Test.class,
|
||||||
RM1814Test.class/*,
|
RM1814Test.class,
|
||||||
RM978Test.class*/
|
RM978Test.class
|
||||||
})
|
})
|
||||||
public class IssueTestSuite
|
public class IssueTestSuite
|
||||||
{
|
{
|
||||||
|
@@ -38,6 +38,7 @@ import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
|
|||||||
import org.alfresco.module.org_alfresco_module_rm.hold.HoldService;
|
import org.alfresco.module.org_alfresco_module_rm.hold.HoldService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.identifier.IdentifierService;
|
import org.alfresco.module.org_alfresco_module_rm.identifier.IdentifierService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.model.rma.type.CmObjectType;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.model.security.ModelSecurityService;
|
import org.alfresco.module.org_alfresco_module_rm.model.security.ModelSecurityService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
|
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.recordableversion.RecordableVersionConfigService;
|
import org.alfresco.module.org_alfresco_module_rm.recordableversion.RecordableVersionConfigService;
|
||||||
@@ -124,6 +125,7 @@ public class BaseUnitTest implements RecordsManagementModel, ContentModel
|
|||||||
@Mock(name="extendedPermissionService") protected ExtendedPermissionService mockedExtendedPermissionService;
|
@Mock(name="extendedPermissionService") protected ExtendedPermissionService mockedExtendedPermissionService;
|
||||||
@Mock(name="extendedSecurityService") protected ExtendedSecurityService mockedExtendedSecurityService;
|
@Mock(name="extendedSecurityService") protected ExtendedSecurityService mockedExtendedSecurityService;
|
||||||
@Mock(name="recordableVersionConfigService") protected RecordableVersionConfigService mockedRecordableVersionConfigService;
|
@Mock(name="recordableVersionConfigService") protected RecordableVersionConfigService mockedRecordableVersionConfigService;
|
||||||
|
@Mock(name="cmObjectType") protected CmObjectType cmObjectType;
|
||||||
|
|
||||||
/** application context mock */
|
/** application context mock */
|
||||||
@Mock(name="applicationContext") protected ApplicationContext mockedApplicationContext;
|
@Mock(name="applicationContext") protected ApplicationContext mockedApplicationContext;
|
||||||
|
Reference in New Issue
Block a user