Loading vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/client/VOSpaceClient.java +2 −2 Original line number Diff line number Diff line Loading @@ -126,11 +126,11 @@ public class VOSpaceClient { call(request, BodyHandlers.ofInputStream(), 200, res -> null); } public Node setNode(Node node) { public Node setNode(Node node, boolean recursive) { String path = node.getUri().substring(("vos://" + authority).length()); HttpRequest request = getRequest("/nodes" + urlEncodePath(path)) HttpRequest request = getRequest("/nodes" + urlEncodePath(path) + "?recursive=" + recursive) .header("Accept", useJson ? "application/json" : "text/xml") .header("Content-Type", useJson ? "application/json" : "text/xml") .POST(HttpRequest.BodyPublishers.ofString(marshal(node))) Loading vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/data/ShareRequest.java +9 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ public class ShareRequest { private List<String> groupWrite; private List<String> userRead; private List<String> userWrite; private boolean recursive; public String getPath() { return path; Loading Loading @@ -49,4 +50,12 @@ public class ShareRequest { public void setUserWrite(List<String> userWrite) { this.userWrite = userWrite; } public boolean isRecursive() { return recursive; } public void setRecursive(boolean recursive) { this.recursive = recursive; } } vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/SharingService.java +1 −1 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ public class SharingService { getNodeProperty(node, NodeProperties.GROUP_READ_URI).setValue(groupRead); getNodeProperty(node, NodeProperties.GROUP_WRITE_URI).setValue(groupWrite); vospaceClient.setNode(node); vospaceClient.setNode(node, shareRequest.isRecursive()); } private Property getNodeProperty(Node node, String uri) { Loading vospace-ui-backend/src/test/java/it/inaf/ia2/vospace/ui/service/SharingServiceTest.java +2 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; Loading Loading @@ -114,7 +115,7 @@ public class SharingServiceTest { assertTrue(groupWrite.contains("people.bianca\\.verdi")); assertTrue(groupWrite.contains("group2")); return true; })); }), anyBoolean()); } private List<RapUser> getRapUsers() { Loading vospace-ui-frontend/src/components/modal/ShareModal.vue +5 −2 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ <h5 class="mt-3">Write permissions</h5> <ShareInputGroup id="user-write" :values="userWrite" :options="people" label="Users" placeholder="Search user..." buttonText="Add user" /> <ShareInputGroup id="group-write" :values="groupWrite" :options="groups" label="Groups" placeholder="Search group..." buttonText="Add group" /> <b-form-checkbox id="recursive" v-model="recursive" name="recursive">Apply also to children</b-form-checkbox> </b-modal> </template> Loading Loading @@ -34,7 +35,8 @@ export default { groupWrite: [], userWrite: [], people: [], groups: [] groups: [], recursive: true } }, methods: { Loading Loading @@ -64,7 +66,8 @@ export default { groupRead: this.groupRead, groupWrite: this.groupWrite, userRead: this.userRead, userWrite: this.userWrite userWrite: this.userWrite, recursive: this.recursive }).then(() => { // Reload current path this.$bvModal.hide('share-modal'); Loading Loading
vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/client/VOSpaceClient.java +2 −2 Original line number Diff line number Diff line Loading @@ -126,11 +126,11 @@ public class VOSpaceClient { call(request, BodyHandlers.ofInputStream(), 200, res -> null); } public Node setNode(Node node) { public Node setNode(Node node, boolean recursive) { String path = node.getUri().substring(("vos://" + authority).length()); HttpRequest request = getRequest("/nodes" + urlEncodePath(path)) HttpRequest request = getRequest("/nodes" + urlEncodePath(path) + "?recursive=" + recursive) .header("Accept", useJson ? "application/json" : "text/xml") .header("Content-Type", useJson ? "application/json" : "text/xml") .POST(HttpRequest.BodyPublishers.ofString(marshal(node))) Loading
vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/data/ShareRequest.java +9 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ public class ShareRequest { private List<String> groupWrite; private List<String> userRead; private List<String> userWrite; private boolean recursive; public String getPath() { return path; Loading Loading @@ -49,4 +50,12 @@ public class ShareRequest { public void setUserWrite(List<String> userWrite) { this.userWrite = userWrite; } public boolean isRecursive() { return recursive; } public void setRecursive(boolean recursive) { this.recursive = recursive; } }
vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/SharingService.java +1 −1 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ public class SharingService { getNodeProperty(node, NodeProperties.GROUP_READ_URI).setValue(groupRead); getNodeProperty(node, NodeProperties.GROUP_WRITE_URI).setValue(groupWrite); vospaceClient.setNode(node); vospaceClient.setNode(node, shareRequest.isRecursive()); } private Property getNodeProperty(Node node, String uri) { Loading
vospace-ui-backend/src/test/java/it/inaf/ia2/vospace/ui/service/SharingServiceTest.java +2 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; Loading Loading @@ -114,7 +115,7 @@ public class SharingServiceTest { assertTrue(groupWrite.contains("people.bianca\\.verdi")); assertTrue(groupWrite.contains("group2")); return true; })); }), anyBoolean()); } private List<RapUser> getRapUsers() { Loading
vospace-ui-frontend/src/components/modal/ShareModal.vue +5 −2 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ <h5 class="mt-3">Write permissions</h5> <ShareInputGroup id="user-write" :values="userWrite" :options="people" label="Users" placeholder="Search user..." buttonText="Add user" /> <ShareInputGroup id="group-write" :values="groupWrite" :options="groups" label="Groups" placeholder="Search group..." buttonText="Add group" /> <b-form-checkbox id="recursive" v-model="recursive" name="recursive">Apply also to children</b-form-checkbox> </b-modal> </template> Loading Loading @@ -34,7 +35,8 @@ export default { groupWrite: [], userWrite: [], people: [], groups: [] groups: [], recursive: true } }, methods: { Loading Loading @@ -64,7 +66,8 @@ export default { groupRead: this.groupRead, groupWrite: this.groupWrite, userRead: this.userRead, userWrite: this.userWrite userWrite: this.userWrite, recursive: this.recursive }).then(() => { // Reload current path this.$bvModal.hide('share-modal'); Loading