From 6775385f1f03265333a8202440d3850c10c2a051 Mon Sep 17 00:00:00 2001 From: Jamal Kaabi-Mofrad Date: Tue, 10 May 2016 10:55:25 +0000 Subject: [PATCH] Merged FILE-FOLDER-API (5.2.0) to HEAD (5.2) 121926 jvonka: Nodes (File/Folder) API - prevent move via PUT (change of parentId) - will be replaced shortly by POST /nodes/{nodeId}/move (RA-806) RA-683 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@126440 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../org/alfresco/rest/api/impl/NodesImpl.java | 4 ++-- .../alfresco/rest/api/tests/NodeApiTest.java | 21 +++++++++++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/source/java/org/alfresco/rest/api/impl/NodesImpl.java b/source/java/org/alfresco/rest/api/impl/NodesImpl.java index b1c7cfaf47..d2a02b2eef 100644 --- a/source/java/org/alfresco/rest/api/impl/NodesImpl.java +++ b/source/java/org/alfresco/rest/api/impl/NodesImpl.java @@ -1236,8 +1236,8 @@ public class NodesImpl implements Nodes if (! currentParentNodeRef.equals(parentNodeRef)) { - // move/rename - with exception mapping - moveOrCopy(nodeRef, parentNodeRef, name, false); + //moveOrCopy(nodeRef, parentNodeRef, name, false); // not currently supported - client should use explicit POST /move operation instead + throw new InvalidArgumentException("Cannot update parentId of "+nodeId+" via PUT /nodes/{nodeId}. Please use explicit POST /nodes/{nodeId}/move operation instead"); } } diff --git a/source/test-java/org/alfresco/rest/api/tests/NodeApiTest.java b/source/test-java/org/alfresco/rest/api/tests/NodeApiTest.java index 4e35b4805a..b8c1321a2d 100644 --- a/source/test-java/org/alfresco/rest/api/tests/NodeApiTest.java +++ b/source/test-java/org/alfresco/rest/api/tests/NodeApiTest.java @@ -1066,6 +1066,10 @@ public class NodeApiTest extends AbstractBaseApiTest *

PUT:

* {@literal :/alfresco/api/-default-/public/alfresco/versions/1/nodes/} */ + + // TODO update these tests for RA-806 (ie. use "POST /nodes/{nodeId}/move" instead of "PUT /nodes/{nodeId}") + + /* @Test public void testMove() throws Exception { @@ -1165,6 +1169,7 @@ public class NodeApiTest extends AbstractBaseApiTest put("nodes", user2, f1Id, toJsonAsStringNonNull(dUpdate), null, 403); } + /** * Tests copy (file or folder) *

PUT:

@@ -1772,6 +1777,20 @@ public class NodeApiTest extends AbstractBaseApiTest fUpdate = new Folder(); fUpdate.setNodeType("cm:folder"); put("nodes", user1, fId, toJsonAsStringNonNull(fUpdate), null, 400); + + // -ve test - try to move to a different parent using PUT (note: should use new POST /nodes/{nodeId}/move operation instead) + + folderResp = createFolder(user1, myNodeId, "folder 2"); + String f2Id = folderResp.getId(); + + fUpdate = new Folder(); + fUpdate.setParentId(f2Id); + put("nodes", user1, fId, toJsonAsStringNonNull(fUpdate), null, 400); + + // ok - if parent does not change + fUpdate = new Folder(); + fUpdate.setParentId(myNodeId); + put("nodes", user1, fId, toJsonAsStringNonNull(fUpdate), null, 200); } /** @@ -1895,8 +1914,6 @@ public class NodeApiTest extends AbstractBaseApiTest assertNotNull(content, response.getResponse()); } - // TODO add test to create multiple folders & empty files (within same parent folder) - /** * Tests download of file/content. *

GET: