Merge branch 'master' of https://git.alfresco.com/records-management/records-management into feature/RM-7066_UpdateToACS62

This commit is contained in:
Rodica Sutu
2019-11-28 16:33:07 +02:00
4 changed files with 30 additions and 14 deletions

View File

@@ -7,4 +7,4 @@ rm.hold.delete-node-frozen-children=Can't delete folder because it contains froz
rm.hold.move-frozen-node=Frozen content can't be moved. rm.hold.move-frozen-node=Frozen content can't be moved.
rm.hold.update-frozen-node=Frozen content can't be updated. rm.hold.update-frozen-node=Frozen content can't be updated.
rm.hold.generic-permission-error=Can't delete hold, because you don't have the correct permissions for all the items within the hold. rm.hold.generic-permission-error=Can't delete hold, because you don't have the correct permissions for all the items within the hold.
rm.hold.detailed-permission-error=Can't delete hold, because filing permissions for the following items are needed: rm.hold.detailed-permission-error=Can't delete hold, because filing permissions for at least the following items are needed:

View File

@@ -940,6 +940,7 @@
<property name="filePlanService" ref="FilePlanService" /> <property name="filePlanService" ref="FilePlanService" />
<property name="namespaceService" ref="NamespaceService" /> <property name="namespaceService" ref="NamespaceService" />
<property name="capabilityService" ref="CapabilityService" /> <property name="capabilityService" ref="CapabilityService" />
<property name="permissionService" ref="PermissionService" />
<property name="ignoredAuditProperties"> <property name="ignoredAuditProperties">
<list> <list>
<value>cm:lastThumbnailModification</value> <value>cm:lastThumbnailModification</value>

View File

@@ -82,6 +82,7 @@ import org.alfresco.service.cmr.repository.MLText;
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.security.AccessStatus; import org.alfresco.service.cmr.security.AccessStatus;
import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.cmr.site.SiteInfo; import org.alfresco.service.cmr.site.SiteInfo;
import org.alfresco.service.cmr.site.SiteService; import org.alfresco.service.cmr.site.SiteService;
import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.NamespaceService;
@@ -206,6 +207,7 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean
private FilePlanService filePlanService; private FilePlanService filePlanService;
private NamespaceService namespaceService; private NamespaceService namespaceService;
protected CapabilityService capabilityService; protected CapabilityService capabilityService;
protected PermissionService permissionService;
private boolean shutdown = false; private boolean shutdown = false;
@@ -322,6 +324,15 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean
this.ignoredAuditProperties = ignoredAuditProperties; this.ignoredAuditProperties = ignoredAuditProperties;
} }
/**
*
* @param permissionService
*/
public void setPermissionService(PermissionService permissionService)
{
this.permissionService = permissionService;
}
/** /**
* @see org.alfresco.module.org_alfresco_module_rm.audit.RecordsManagementAuditService#registerAuditEvent(java.lang.String, java.lang.String) * @see org.alfresco.module.org_alfresco_module_rm.audit.RecordsManagementAuditService#registerAuditEvent(java.lang.String, java.lang.String)
*/ */
@@ -988,9 +999,10 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean
} }
if (nodeRef != null && nodeService.exists(nodeRef) && if (nodeRef != null && nodeService.exists(nodeRef) &&
filePlanService.isFilePlanComponent(nodeRef) && ((filePlanService.isFilePlanComponent(nodeRef) &&
!AccessStatus.ALLOWED.equals( !AccessStatus.ALLOWED.equals(
capabilityService.getCapabilityAccessState(nodeRef, ACCESS_AUDIT_CAPABILITY))) capabilityService.getCapabilityAccessState(nodeRef, ACCESS_AUDIT_CAPABILITY)))
|| (!AccessStatus.ALLOWED.equals(permissionService.hasPermission(nodeRef, PermissionService.READ)))))
{ {
return true; return true;
} }
@@ -1522,12 +1534,6 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean
setNodeName(entry, json); setNodeName(entry, json);
// TODO: Find another way for checking the event
if (entry.getEvent().equals("Delete RM Object"))
{
json.put("deleteObject", true);
}
json.put("nodeType", entry.getNodeType() == null ? "": entry.getNodeType()); json.put("nodeType", entry.getNodeType() == null ? "": entry.getNodeType());
json.put("event", entry.getEvent() == null ? "": getAuditEventLabel(entry.getEvent())); json.put("event", entry.getEvent() == null ? "": getAuditEventLabel(entry.getEvent()));
json.put("identifier", entry.getIdentifier() == null ? "": entry.getIdentifier()); json.put("identifier", entry.getIdentifier() == null ? "": entry.getIdentifier());
@@ -1626,6 +1632,12 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean
nodeName = getNodeName(entry.getBeforeProperties(), PARENT_GROUP); nodeName = getNodeName(entry.getBeforeProperties(), PARENT_GROUP);
break; break;
case "Delete RM Object":
case "Delete Hold":
nodeName = entry.getNodeName();
json.put("deleteObject", true);
break;
default: default:
nodeName = entry.getNodeName(); nodeName = entry.getNodeName();
break; break;

View File

@@ -39,11 +39,11 @@ import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.stream.Stream;
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.audit.RecordsManagementAuditService; import org.alfresco.module.org_alfresco_module_rm.audit.RecordsManagementAuditService;
import org.alfresco.module.org_alfresco_module_rm.audit.event.AuditEvent;
import org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService; import org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService;
import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel; import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService; import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
@@ -104,6 +104,9 @@ public class HoldServiceImpl extends ServiceBaseImpl
private static final String MSG_ERR_HOLD_PERMISSION_GENERIC_ERROR = "rm.hold.generic-permission-error"; private static final String MSG_ERR_HOLD_PERMISSION_GENERIC_ERROR = "rm.hold.generic-permission-error";
private static final String MSG_ERR_HOLD_PERMISSION_DETAILED_ERROR = "rm.hold.detailed-permission-error"; private static final String MSG_ERR_HOLD_PERMISSION_DETAILED_ERROR = "rm.hold.detailed-permission-error";
/** Maximum number of held items to display in error message */
private static final int MAX_HELD_ITEMS_LIST_SIZE = 5;
/** File Plan Service */ /** File Plan Service */
private FilePlanService filePlanService; private FilePlanService filePlanService;
@@ -570,13 +573,13 @@ public class HoldServiceImpl extends ServiceBaseImpl
if (heldNames.size() > 0) if (heldNames.size() > 0)
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
for (String name : heldNames) Stream<String> stream1 = heldNames.stream();
{ stream1.limit(MAX_HELD_ITEMS_LIST_SIZE).forEach(name -> {
sb.append("\n "); sb.append("\n ");
sb.append("'"); sb.append("'");
sb.append(name); sb.append(name);
sb.append("'"); sb.append("'");
} });
throw new AccessDeniedException(I18NUtil.getMessage(MSG_ERR_HOLD_PERMISSION_DETAILED_ERROR) + sb.toString()); throw new AccessDeniedException(I18NUtil.getMessage(MSG_ERR_HOLD_PERMISSION_DETAILED_ERROR) + sb.toString());
} }