From c40d5a532007b3437e9587c2844b51677d209f4f Mon Sep 17 00:00:00 2001 From: Sonia Zorba <sonia.zorba@inaf.it> Date: Thu, 11 Nov 2021 17:40:24 +0100 Subject: [PATCH] Added support for administrator group (can access all nodes) --- .../it/inaf/oats/vospace/datamodel/NodeUtils.java | 4 ++++ .../inaf/oats/vospace/datamodel/NodeUtilsTest.java | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/main/java/it/inaf/oats/vospace/datamodel/NodeUtils.java b/src/main/java/it/inaf/oats/vospace/datamodel/NodeUtils.java index 4354703..0bcf0f1 100644 --- a/src/main/java/it/inaf/oats/vospace/datamodel/NodeUtils.java +++ b/src/main/java/it/inaf/oats/vospace/datamodel/NodeUtils.java @@ -165,6 +165,10 @@ public class NodeUtils { return false; } + if (userGroups.contains("VOSpace.ADMIN")) { + return true; + } + List<String> groupAccessPropValues = NodeProperties.getNodePropertyAsListByURI(myNode, accessPropertyName); diff --git a/src/test/java/it/inaf/oats/vospace/datamodel/NodeUtilsTest.java b/src/test/java/it/inaf/oats/vospace/datamodel/NodeUtilsTest.java index 1d6a93f..d68b991 100644 --- a/src/test/java/it/inaf/oats/vospace/datamodel/NodeUtilsTest.java +++ b/src/test/java/it/inaf/oats/vospace/datamodel/NodeUtilsTest.java @@ -248,6 +248,20 @@ public class NodeUtilsTest { assertFalse(NodeUtils.checkIfWritable(node, "user2", List.of())); } + @Test + public void testCheckWritableNoProperty() { + + Node node = new DataNode(); + assertFalse(NodeUtils.checkIfWritable(node, "user2", List.of("group1"))); + } + + @Test + public void testCheckAdminCanAlwaysAccess() { + + Node node = new DataNode(); + assertTrue(NodeUtils.checkIfWritable(node, "user2", List.of("VOSpace.ADMIN"))); + } + @Test public void testGetVosPath() { -- GitLab