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() {