Commit 28eba027 authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Added recursive flag to share modal

parent 30871a33
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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)))
+9 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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;
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -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) {
+2 −1
Original line number Diff line number Diff line
@@ -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;
@@ -114,7 +115,7 @@ public class SharingServiceTest {
            assertTrue(groupWrite.contains("people.bianca\\.verdi"));
            assertTrue(groupWrite.contains("group2"));
            return true;
        }));
        }), anyBoolean());
    }

    private List<RapUser> getRapUsers() {
+5 −2
Original line number Diff line number Diff line
@@ -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>

@@ -34,7 +35,8 @@ export default {
      groupWrite: [],
      userWrite: [],
      people: [],
      groups: []
      groups: [],
      recursive: true
    }
  },
  methods: {
@@ -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');