RM-7028 show location and fix multiple holds

This commit is contained in:
Sara Aspery
2019-11-12 05:13:40 +00:00
parent fa625379e2
commit 55e5267234
3 changed files with 38 additions and 4 deletions

View File

@@ -19,6 +19,8 @@
<property name="nodeService" ref="nodeService" /> <property name="nodeService" ref="nodeService" />
<property name="filePlanService" ref="filePlanService" /> <property name="filePlanService" ref="filePlanService" />
<property name="ruleService" ref="RuleService" /> <property name="ruleService" ref="RuleService" />
<property name="permissionService" ref="PermissionService" />
<property name="freezeService" ref="FreezeService" />
</bean> </bean>
<bean id="org_alfresco_module_rm_nodeRefPathExtractor" class="org.alfresco.module.org_alfresco_module_rm.audit.extractor.FilePlanNodeRefPathDataExtractor"> <bean id="org_alfresco_module_rm_nodeRefPathExtractor" class="org.alfresco.module.org_alfresco_module_rm.audit.extractor.FilePlanNodeRefPathDataExtractor">

View File

@@ -39,6 +39,7 @@ import org.alfresco.service.namespace.QName;
import java.io.Serializable; import java.io.Serializable;
import java.util.Map; import java.util.Map;
import static org.alfresco.module.org_alfresco_module_rm.audit.event.HoldUtils.HOLD_NAME;
import static org.alfresco.repo.policy.Behaviour.NotificationFrequency.TRANSACTION_COMMIT; import static org.alfresco.repo.policy.Behaviour.NotificationFrequency.TRANSACTION_COMMIT;
/** /**
@@ -78,6 +79,6 @@ public class AddToHoldAuditEvent extends AuditEvent implements HoldServicePolici
Map<QName, Serializable> auditProperties = HoldUtils.makePropertiesMap(holdNodeRef, nodeService); Map<QName, Serializable> auditProperties = HoldUtils.makePropertiesMap(holdNodeRef, nodeService);
auditProperties.put(ContentModel.PROP_NAME, nodeService.getProperty(contentNodeRef, ContentModel.PROP_NAME)); auditProperties.put(ContentModel.PROP_NAME, nodeService.getProperty(contentNodeRef, ContentModel.PROP_NAME));
recordsManagementAuditService.auditEvent(contentNodeRef, getName(), null, auditProperties); recordsManagementAuditService.auditEvent(contentNodeRef, getName(), null, auditProperties, true, false);
} }
} }

View File

@@ -33,11 +33,14 @@ import java.util.Objects;
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.freeze.FreezeService;
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
import org.alfresco.repo.audit.extractor.AbstractDataExtractor; import org.alfresco.repo.audit.extractor.AbstractDataExtractor;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.Path;
import org.alfresco.service.cmr.rule.RuleService; import org.alfresco.service.cmr.rule.RuleService;
import org.alfresco.service.cmr.security.PermissionService;
/** /**
* An extractor that extracts the <b>cm:name</b> path from the RM root down to * An extractor that extracts the <b>cm:name</b> path from the RM root down to
@@ -54,6 +57,8 @@ public final class FilePlanNamePathDataExtractor extends AbstractDataExtractor
private NodeService nodeService; private NodeService nodeService;
private FilePlanService filePlanService; private FilePlanService filePlanService;
private RuleService ruleService; private RuleService ruleService;
private PermissionService permissionService;
private FreezeService freezeService;
/** /**
* Used to check that the node in the context is a fileplan component * Used to check that the node in the context is a fileplan component
@@ -80,8 +85,24 @@ public final class FilePlanNamePathDataExtractor extends AbstractDataExtractor
} }
/** /**
* @return Returns <tt>true</tt> if the data is a NodeRef and it represents * @param permissionService permission service
* a fileplan component */
public void setPermissionService(PermissionService permissionService)
{
this.permissionService = permissionService;
}
/**
* @param freezeService freeze service
*/
public void setFreezeService(FreezeService freezeService)
{
this.freezeService = freezeService;
}
/**
* @return Returns <tt>true</tt> if the data is a NodeRef and it either represents
* a fileplan component or is frozen
*/ */
public boolean isSupported(Serializable data) public boolean isSupported(Serializable data)
{ {
@@ -89,7 +110,8 @@ public final class FilePlanNamePathDataExtractor extends AbstractDataExtractor
{ {
return false; return false;
} }
return nodeService.hasAspect((NodeRef)data, RecordsManagementModel.ASPECT_FILE_PLAN_COMPONENT); return nodeService.hasAspect((NodeRef)data, RecordsManagementModel.ASPECT_FILE_PLAN_COMPONENT) ||
freezeService.isFrozen((NodeRef) data);
} }
/** /**
@@ -116,6 +138,15 @@ public final class FilePlanNamePathDataExtractor extends AbstractDataExtractor
sb.append("/").append(name); sb.append("/").append(name);
} }
} }
else if (freezeService.isFrozen(nodeRef))
{
// Get path from the DM root
Path nodeRefPath = nodeService.getPath(nodeRef);
sb.append(nodeRefPath.toDisplayPath(nodeService, permissionService));
// Get node name
String name = (String)nodeService.getProperty(nodeRef, ContentModel.PROP_NAME);
sb.append("/").append(name);
}
// Done // Done
extractedData = sb.toString(); extractedData = sb.toString();