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
{