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 4354703ed81858378226440a9ee85dc3ba8a955f..0bcf0f13a0fe2d9d6312f38bdcef78c5b9894b54 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 1d6a93f12183d1301a306663150bc5b51ef60ae7..d68b9912a9565d5c0d88ef94bb679733ffb864f0 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() {