mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
REPO-1443: V1 REST API - minor - accept well-known aliases for "update node info"
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@131582 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -2038,7 +2038,7 @@ public class NodesImpl implements Nodes
|
|||||||
|
|
||||||
protected NodeRef updateNodeImpl(String nodeId, Node nodeInfo, Parameters parameters)
|
protected NodeRef updateNodeImpl(String nodeId, Node nodeInfo, Parameters parameters)
|
||||||
{
|
{
|
||||||
final NodeRef nodeRef = validateNode(nodeId);
|
final NodeRef nodeRef = validateOrLookupNode(nodeId, null);
|
||||||
|
|
||||||
QName nodeTypeQName = getNodeType(nodeRef);
|
QName nodeTypeQName = getNodeType(nodeRef);
|
||||||
|
|
||||||
|
@@ -2955,6 +2955,49 @@ public class NodeApiTest extends AbstractSingleNetworkSiteTest
|
|||||||
assertEquals("1.3", nodeResp.getProperties().get("cm:versionLabel"));
|
assertEquals("1.3", nodeResp.getProperties().get("cm:versionLabel"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// update folder(s) via well-known aliases rather than node id
|
||||||
|
|
||||||
|
// note: as of now, the platform does allow a user to modify their home folder [this may change in the future, if so adjust the test accordingly]
|
||||||
|
response = getSingle(URL_NODES, Nodes.PATH_MY, 200);
|
||||||
|
Folder user1MyFolder = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Folder.class);
|
||||||
|
String user1MyFolderId = user1MyFolder.getId();
|
||||||
|
|
||||||
|
String description = "my folder description "+RUNID;
|
||||||
|
props = new HashMap<>();
|
||||||
|
props.put("cm:description", description);
|
||||||
|
|
||||||
|
fUpdate = new Folder();
|
||||||
|
fUpdate.setProperties(props);
|
||||||
|
|
||||||
|
response = put(URL_NODES, Nodes.PATH_MY, toJsonAsStringNonNull(fUpdate), null, 200);
|
||||||
|
folderResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Folder.class);
|
||||||
|
assertEquals(description, folderResp.getProperties().get("cm:description"));
|
||||||
|
|
||||||
|
setRequestContext(networkAdmin);
|
||||||
|
|
||||||
|
props = new HashMap<>();
|
||||||
|
props.put("cm:description", description);
|
||||||
|
|
||||||
|
fUpdate = new Folder();
|
||||||
|
fUpdate.setProperties(props);
|
||||||
|
|
||||||
|
response = put(URL_NODES, Nodes.PATH_ROOT, toJsonAsStringNonNull(fUpdate), null, 200);
|
||||||
|
folderResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Folder.class);
|
||||||
|
assertEquals(description, folderResp.getProperties().get("cm:description"));
|
||||||
|
|
||||||
|
props = new HashMap<>();
|
||||||
|
props.put("cm:description", description);
|
||||||
|
|
||||||
|
fUpdate = new Folder();
|
||||||
|
fUpdate.setProperties(props);
|
||||||
|
|
||||||
|
response = put(URL_NODES, Nodes.PATH_SHARED, toJsonAsStringNonNull(fUpdate), null, 200);
|
||||||
|
folderResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Folder.class);
|
||||||
|
assertEquals(description, folderResp.getProperties().get("cm:description"));
|
||||||
|
|
||||||
|
|
||||||
|
setRequestContext(user1);
|
||||||
|
|
||||||
// -ve test - fail on unknown property
|
// -ve test - fail on unknown property
|
||||||
props = new HashMap<>();
|
props = new HashMap<>();
|
||||||
props.put("cm:xyz","my unknown property");
|
props.put("cm:xyz","my unknown property");
|
||||||
@@ -3004,6 +3047,30 @@ public class NodeApiTest extends AbstractSingleNetworkSiteTest
|
|||||||
fUpdate = new Folder();
|
fUpdate = new Folder();
|
||||||
fUpdate.setProperties(props);
|
fUpdate.setProperties(props);
|
||||||
put(URL_NODES, f2Id, toJsonAsStringNonNull(fUpdate), null, 400);
|
put(URL_NODES, f2Id, toJsonAsStringNonNull(fUpdate), null, 400);
|
||||||
|
|
||||||
|
// -ve test - non-admin cannot modify root (Company Home) folder
|
||||||
|
props = new HashMap<>();
|
||||||
|
props.put("cm:description", "my folder description");
|
||||||
|
fUpdate = new Folder();
|
||||||
|
fUpdate.setProperties(props);
|
||||||
|
put(URL_NODES, Nodes.PATH_ROOT, toJsonAsStringNonNull(fUpdate), null, 403);
|
||||||
|
|
||||||
|
// -ve test - non-admin cannot modify "Shared" folder
|
||||||
|
props = new HashMap<>();
|
||||||
|
props.put("cm:description", "my folder description");
|
||||||
|
fUpdate = new Folder();
|
||||||
|
fUpdate.setProperties(props);
|
||||||
|
put(URL_NODES, Nodes.PATH_SHARED, toJsonAsStringNonNull(fUpdate), null, 403);
|
||||||
|
|
||||||
|
setRequestContext(user2);
|
||||||
|
|
||||||
|
// -ve test - user cannot modify another user's home folder
|
||||||
|
props = new HashMap<>();
|
||||||
|
props.put("cm:description", "my folder description");
|
||||||
|
fUpdate = new Folder();
|
||||||
|
fUpdate.setProperties(props);
|
||||||
|
put(URL_NODES, user1MyFolderId, toJsonAsStringNonNull(fUpdate), null, 403);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user