Merged HEAD (5.2) to 5.2.N (5.2.1)

126445 jkaabimofrad: Merged FILE-FOLDER-API (5.2.0) to HEAD (5.2)
      121972 jvonka: Nodes (FileFolder) API - add api tests when setting owner (cm:owner prop')
      RA-706, RA-639


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@126790 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Ancuta Morarasu
2016-05-11 11:20:43 +00:00
parent 3d68aeb1ac
commit 21ea65d14a
3 changed files with 156 additions and 4 deletions

View File

@@ -104,6 +104,7 @@ import org.alfresco.service.cmr.repository.Path.Element;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.security.AccessStatus;
import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.cmr.usage.ContentQuotaException;
import org.alfresco.service.cmr.version.VersionService;
import org.alfresco.service.namespace.NamespaceService;
@@ -157,6 +158,7 @@ public class NodesImpl implements Nodes
private ContentService contentService;
private ActionService actionService;
private VersionService versionService;
private PersonService personService;
// note: circular - Nodes/QuickShareLinks currently use each other (albeit for different methods)
private QuickShareLinks quickShareLinks;
@@ -186,6 +188,7 @@ public class NodesImpl implements Nodes
this.contentService = sr.getContentService();
this.actionService = sr.getActionService();
this.versionService = sr.getVersionService();
this.personService = sr.getPersonService();
if (defaultIgnoreTypesAndAspects != null)
{
@@ -1178,6 +1181,8 @@ public class NodesImpl implements Nodes
}
props.put(ContentModel.PROP_NAME, nodeName);
validatePropValues(props);
QName assocQName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, QName.createValidLocalName(nodeName));
try
{
@@ -1204,6 +1209,20 @@ public class NodesImpl implements Nodes
}
}
// special cases: additional validation of property values (if not done by underlying foundation services)
private void validatePropValues(Map<QName, Serializable> props)
{
String newOwner = (String)props.get(ContentModel.PROP_OWNER);
if (newOwner != null)
{
// validate that user exists
if (! personService.personExists(newOwner))
{
throw new InvalidArgumentException("Unknown owner: "+newOwner);
}
}
}
public Node updateNode(String nodeId, Node nodeInfo, Parameters parameters)
{
final NodeRef nodeRef = validateNode(nodeId);
@@ -1334,6 +1353,8 @@ public class NodesImpl implements Nodes
if (props.size() > 0)
{
validatePropValues(props);
try
{
// update node properties - note: null will unset the specified property