From 8911277917346935d8850a1ee4bb9241e3bae502 Mon Sep 17 00:00:00 2001 From: David Webster Date: Fri, 29 May 2015 10:53:36 +0000 Subject: [PATCH] RM-2270: WIP: Extending QuickShareService to prevent classified content being shared. Checking in for +review @taksoy @tpage @rweatherall @nmcerlean git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@105022 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../extended-repository-context.xml | 11 +++++ .../ExtendedQuickShareServiceImpl.java | 43 +++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 rm-server/source/java/org/alfresco/repo/quickshare/ExtendedQuickShareServiceImpl.java diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/extended-repository-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/extended-repository-context.xml index 6f589e52b4..5a404cc4b5 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/extended-repository-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/extended-repository-context.xml @@ -26,6 +26,17 @@ + + + + + + + + + + + org.alfresco.repo.security.permissions.impl.ExtendedPermissionService diff --git a/rm-server/source/java/org/alfresco/repo/quickshare/ExtendedQuickShareServiceImpl.java b/rm-server/source/java/org/alfresco/repo/quickshare/ExtendedQuickShareServiceImpl.java new file mode 100644 index 0000000000..9eeb6bd6fe --- /dev/null +++ b/rm-server/source/java/org/alfresco/repo/quickshare/ExtendedQuickShareServiceImpl.java @@ -0,0 +1,43 @@ +package org.alfresco.repo.quickshare; + +import org.alfresco.module.org_alfresco_module_rm.classification.ClassificationLevelManager; +import org.alfresco.module.org_alfresco_module_rm.classification.model.ClassifiedContentModel; +import org.alfresco.service.cmr.quickshare.QuickShareDTO; +import org.alfresco.service.cmr.repository.NodeRef; +import org.alfresco.service.cmr.repository.NodeService; + +/** + * Extend the QuickShareService to check that content isn't classified before sharing it. + * + * @author David Webster + */ +public class ExtendedQuickShareServiceImpl extends QuickShareServiceImpl +{ + private NodeService nodeService; + + /** + * Set node service locally as inherited instance is private. + * + * @param nodeService the nodeService used to check node props and aspects + */ + @Override + public void setNodeService(NodeService nodeService) + { + this.nodeService = nodeService; + super.setNodeService(nodeService); + } + + @Override + public QuickShareDTO shareContent(final NodeRef nodeRef) + { + if (!nodeService.hasAspect(nodeRef, ClassifiedContentModel.ASPECT_CLASSIFIED) || nodeService.getProperty(nodeRef, ClassifiedContentModel.PROP_CURRENT_CLASSIFICATION) + .equals(ClassificationLevelManager.UNCLASSIFIED_ID)) + { + return super.shareContent(nodeRef); + } + else + { + throw new IllegalStateException("Unable to share classified content"); + } + } +} \ No newline at end of file