mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
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/HEAD/root@126445 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -97,6 +97,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;
|
||||
@@ -150,6 +151,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;
|
||||
@@ -179,6 +181,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)
|
||||
{
|
||||
@@ -1171,6 +1174,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
|
||||
{
|
||||
@@ -1197,6 +1202,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);
|
||||
@@ -1327,6 +1346,8 @@ public class NodesImpl implements Nodes
|
||||
|
||||
if (props.size() > 0)
|
||||
{
|
||||
validatePropValues(props);
|
||||
|
||||
try
|
||||
{
|
||||
// update node properties - note: null will unset the specified property
|
||||
|
Reference in New Issue
Block a user