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
This commit is contained in:
David Webster
2015-05-29 10:53:36 +00:00
parent 97ddd7182b
commit 8911277917
2 changed files with 54 additions and 0 deletions

View File

@@ -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");
}
}
}