From 8339cc204b702dea94bb86de5bdb5e4a3a76123a Mon Sep 17 00:00:00 2001 From: Nicola Fulvio Calabria <nicola.calabria@inaf.it> Date: Thu, 11 Mar 2021 11:35:15 +0100 Subject: [PATCH] Fixed Task #6363 disappearance (likely due to local git client/IDE bug). Commit from fresh cloned local copy. --- .../inaf/oats/vospace/ListNodeController.java | 18 ++++++++++++++++++ .../oats/vospace/ListNodeControllerTest.java | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/it/inaf/oats/vospace/ListNodeController.java b/src/main/java/it/inaf/oats/vospace/ListNodeController.java index 7dd303f..9f53335 100644 --- a/src/main/java/it/inaf/oats/vospace/ListNodeController.java +++ b/src/main/java/it/inaf/oats/vospace/ListNodeController.java @@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.http.ResponseEntity; import net.ivoa.xml.vospace.v2.Node; +import net.ivoa.xml.vospace.v2.ContainerNode; import it.inaf.oats.vospace.persistence.NodeDAO; import javax.servlet.http.HttpServletRequest; @@ -17,6 +18,8 @@ import it.inaf.ia2.aa.data.User; import it.inaf.oats.vospace.datamodel.NodeUtils; import java.util.Optional; import it.inaf.oats.vospace.exception.PermissionDeniedException; +import java.util.stream.Collectors; +import java.util.List; @RestController public class ListNodeController extends BaseNodeController { @@ -42,7 +45,22 @@ public class ListNodeController extends BaseNodeController { throw new PermissionDeniedException(path); } } + + Node node = optNode.get(); + + if (node instanceof ContainerNode) { + ContainerNode cnd = (ContainerNode) node; + List<Node> children + = cnd.getNodes().stream().filter( + (n) -> NodeUtils.checkIfReadable( + n, principal.getName(), + principal.getGroups())) + .collect(Collectors.toList()); + cnd.setNodes(children); + optNode = Optional.of(cnd); + } return ResponseEntity.ok(optNode.get()); + } } diff --git a/src/test/java/it/inaf/oats/vospace/ListNodeControllerTest.java b/src/test/java/it/inaf/oats/vospace/ListNodeControllerTest.java index 54dc45e..18b4a60 100644 --- a/src/test/java/it/inaf/oats/vospace/ListNodeControllerTest.java +++ b/src/test/java/it/inaf/oats/vospace/ListNodeControllerTest.java @@ -111,7 +111,7 @@ public class ListNodeControllerTest { .andExpect(status().is2xxSuccessful()); } - //@Test + @Test public void testListOnlyReadableChildren() throws Exception { ContainerNode node = new ContainerNode(); -- GitLab