diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml index 7c53ee1dea..1845cdf360 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml @@ -259,6 +259,7 @@ depends-on="rmDestroyRecordsScheduledForDestructionCapability"> + ${rm.ghosting.enabled} diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/DestroyAction.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/DestroyAction.java index b4b01a87e2..07a3bb8cb8 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/DestroyAction.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/DestroyAction.java @@ -29,6 +29,7 @@ import org.alfresco.module.org_alfresco_module_rm.action.RMDispositionActionExec import org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService; import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionActionDefinition; import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionSchedule; +import org.alfresco.module.org_alfresco_module_rm.record.InplaceRecordService; import org.alfresco.repo.content.cleanup.EagerContentStoreCleaner; import org.alfresco.service.cmr.action.Action; import org.alfresco.service.cmr.dictionary.DataTypeDefinition; @@ -55,6 +56,9 @@ public class DestroyAction extends RMDispositionActionExecuterAbstractBase /** Capability service */ private CapabilityService capabilityService; + /** Inplace record service */ + private InplaceRecordService inplaceRecordService; + /** Indicates if ghosting is enabled or not */ private boolean ghostingEnabled = true; @@ -74,6 +78,14 @@ public class DestroyAction extends RMDispositionActionExecuterAbstractBase this.capabilityService = capabilityService; } + /** + * @param inplaceRecordService inplace record service + */ + public void setInplaceRecordService(InplaceRecordService inplaceRecordService) + { + this.inplaceRecordService = inplaceRecordService; + } + /** * @param ghostingEnabled true if ghosting is enabled, false otherwise */ @@ -152,6 +164,9 @@ public class DestroyAction extends RMDispositionActionExecuterAbstractBase { // Add the ghosted aspect getNodeService().addAspect(record, ASPECT_GHOSTED, null); + + // Hide from inplace users to give the impression of destruction + inplaceRecordService.hideRecord(record); } else { diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/record/InplaceRecordPermissionTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/record/InplaceRecordPermissionTest.java index b16c1472c3..ef086d2bc8 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/record/InplaceRecordPermissionTest.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/record/InplaceRecordPermissionTest.java @@ -500,8 +500,7 @@ public class InplaceRecordPermissionTest extends BaseRMTestCase * And it's metadata is maintained * Then the inplace users will no longer see the record */ - // FIXME: See RM-4095 - public void ztestDestroyedRecordInplacePermissions() + public void testDestroyedRecordInplacePermissions() { test() .given() diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/record/RecordTestSuite.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/record/RecordTestSuite.java index a374616e98..ad664420cf 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/record/RecordTestSuite.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/record/RecordTestSuite.java @@ -37,7 +37,9 @@ import org.junit.runners.Suite.SuiteClasses; HideInplaceRecordTest.class, MoveInplaceRecordTest.class, ViewRecordTest.class, - LinkRecordTest.class + LinkRecordTest.class, + CreateInplaceRecordTest.class, + InplaceRecordPermissionTest.class }) public class RecordTestSuite {