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.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.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="namespaceService" ref="NamespaceService" />
<property name="capabilityService" ref="CapabilityService" />
<property name="permissionService" ref="PermissionService" />
<property name="ignoredAuditProperties">
<list>
<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.NodeService;
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.SiteService;
import org.alfresco.service.namespace.NamespaceService;
@@ -206,6 +207,7 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean
private FilePlanService filePlanService;
private NamespaceService namespaceService;
protected CapabilityService capabilityService;
protected PermissionService permissionService;
private boolean shutdown = false;
@@ -322,6 +324,15 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean
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)
*/
@@ -988,9 +999,10 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean
}
if (nodeRef != null && nodeService.exists(nodeRef) &&
filePlanService.isFilePlanComponent(nodeRef) &&
!AccessStatus.ALLOWED.equals(
capabilityService.getCapabilityAccessState(nodeRef, ACCESS_AUDIT_CAPABILITY)))
((filePlanService.isFilePlanComponent(nodeRef) &&
!AccessStatus.ALLOWED.equals(
capabilityService.getCapabilityAccessState(nodeRef, ACCESS_AUDIT_CAPABILITY)))
|| (!AccessStatus.ALLOWED.equals(permissionService.hasPermission(nodeRef, PermissionService.READ)))))
{
return true;
}
@@ -1522,12 +1534,6 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean
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("event", entry.getEvent() == null ? "": getAuditEventLabel(entry.getEvent()));
json.put("identifier", entry.getIdentifier() == null ? "": entry.getIdentifier());
@@ -1626,6 +1632,12 @@ public class RecordsManagementAuditServiceImpl extends AbstractLifecycleBean
nodeName = getNodeName(entry.getBeforeProperties(), PARENT_GROUP);
break;
case "Delete RM Object":
case "Delete Hold":
nodeName = entry.getNodeName();
json.put("deleteObject", true);
break;
default:
nodeName = entry.getNodeName();
break;

View File

@@ -39,11 +39,11 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Stream;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.model.ContentModel;
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.RMPermissionModel;
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_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 */
private FilePlanService filePlanService;
@@ -570,13 +573,13 @@ public class HoldServiceImpl extends ServiceBaseImpl
if (heldNames.size() > 0)
{
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("'");
sb.append(name);
sb.append("'");
}
});
throw new AccessDeniedException(I18NUtil.getMessage(MSG_ERR_HOLD_PERMISSION_DETAILED_ERROR) + sb.toString());
}