Commit 14f15a70 authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Added modal and completed API for members/permissions removal

parent 616329f4
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -58,11 +58,11 @@ public class CLI implements CommandLineRunner {

        switch (args[0]) {
            case "create-group":
                client.createGroup(getNames(args, 1));
                client.addGroup(getNames(args, 1));
                System.out.println("Group created");
                break;
            case "delete-group":
                client.deleteGroup(getNames(args, 1));
                client.removeGroup(getNames(args, 1));
                System.out.println("Group deleted");
                break;
            case "add-member":
@@ -90,8 +90,8 @@ public class CLI implements CommandLineRunner {
                if (args.length < 4) {
                    displayUsage();
                }
                client.deletePermission(getNames(args, args.length - 3), args[args.length - 2], args[args.length - 1]);
                System.out.println("Permission added");
                client.removePermission(getNames(args, args.length - 2), args[args.length - 1]);
                System.out.println("Permission removed");
                break;
            case "prepare-join":
                if (args.length != 3) {
@@ -108,12 +108,12 @@ public class CLI implements CommandLineRunner {

    private void displayUsage() {
        System.out.println("java -jar gms-client.jar\n"
                + "    create-group <name1 name2 name3>\n"
                + "    delete-group <name1 name2 name3>\n"
                + "    add-group <name1 name2 name3>\n"
                + "    remove-group <name1 name2 name3>\n"
                + "    add-member <name1 name2 name3> <user_id>\n"
                + "    remove-member <name1 name2 name3> <user_id>\n"
                + "    add-permission <name1 name2 name3> <user_id> <permission>\n"
                + "    delete-permission <name1 name2 name3> <user_id> <permission>\n"
                + "    remove-permission <name1 name2 name3> <user_id>\n"
                + "    prepare-join <from_user_id> <to_user_id>");
        System.exit(0);
    }
+3 −4
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ public class GmsClient {
        this.restTemplate = restTemplate;
    }

    public Group createGroup(List<String> names) {
    public Group addGroup(List<String> names) {

        String url = UriComponentsBuilder.fromHttpUrl(baseUrl)
                .pathSegment(WS, "group")
@@ -51,7 +51,7 @@ public class GmsClient {
        return restTemplate.exchange(url, HttpMethod.POST, httpEntity, Group.class).getBody();
    }

    public void deleteGroup(List<String> names) {
    public void removeGroup(List<String> names) {

        String url = UriComponentsBuilder.fromHttpUrl(baseUrl)
                .pathSegment(WS, "group")
@@ -101,13 +101,12 @@ public class GmsClient {
        return restTemplate.exchange(url, HttpMethod.POST, httpEntity, Permission.class).getBody();
    }

    public void deletePermission(List<String> names, String userId, String permission) {
    public void removePermission(List<String> names, String userId) {

        String url = UriComponentsBuilder.fromHttpUrl(baseUrl)
                .pathSegment(WS, "permission")
                .queryParam("names", names.toArray())
                .queryParam("userId", userId)
                .queryParam("permission", permission)
                .toUriString();

        restTemplate.exchange(url, HttpMethod.DELETE, getEntity(), Void.class);
+4 −4
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ public class GmsClientTest {

        List<String> names = Arrays.asList("LBT", "INAF");

        client.createGroup(names);
        client.addGroup(names);

        ArgumentCaptor<HttpEntity> entityCaptor = ArgumentCaptor.forClass(HttpEntity.class);
        verify(restTemplate, times(1)).exchange(eq(BASE_URL + "/ws/group"),
@@ -67,7 +67,7 @@ public class GmsClientTest {

        List<String> names = Arrays.asList("LBT", "INAF");

        client.deleteGroup(names);
        client.removeGroup(names);

        ArgumentCaptor<HttpEntity> entityCaptor = ArgumentCaptor.forClass(HttpEntity.class);
        verify(restTemplate, times(1)).exchange(eq(BASE_URL + "/ws/group?names=LBT&names=INAF"),
@@ -140,10 +140,10 @@ public class GmsClientTest {

        List<String> names = Arrays.asList("LBT", "INAF");

        client.deletePermission(names, "user_id", "ADMIN");
        client.removePermission(names, "user_id");

        ArgumentCaptor<HttpEntity> entityCaptor = ArgumentCaptor.forClass(HttpEntity.class);
        verify(restTemplate, times(1)).exchange(eq(BASE_URL + "/ws/permission?names=LBT&names=INAF&userId=user_id&permission=ADMIN"),
        verify(restTemplate, times(1)).exchange(eq(BASE_URL + "/ws/permission?names=LBT&names=INAF&userId=user_id"),
                eq(HttpMethod.DELETE), entityCaptor.capture(), eq(Void.class));

        HttpEntity<?> entity = entityCaptor.getValue();
+67 −1
Original line number Diff line number Diff line
@@ -82,7 +82,7 @@ export default {
      })
    });
  },
  deleteGroup (groupId, input) {
  removeGroup (groupId, input) {
    let url = BASE_API_URL + 'group/' + groupId
            + '?paginatorPageSize=' + input.paginatorPageSize
            + '&paginatorPage=' + input.paginatorPage;
@@ -128,5 +128,71 @@ export default {
        paginatorPage: input.paginatorPage
      })
    });
  },
  getPermission (groupId, userId) {
    let url = BASE_API_URL + 'permission?groupId=' + groupId + '&userId=' + userId;

    return apiRequest(url, {
      method: 'GET',
      cache: 'no-cache',
      credentials: 'include',
      headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json',
      }
    });
  },
  addMember (userId, permission, input) {
    let url = BASE_API_URL + 'member';

    return apiRequest(url, {
      method: 'POST',
      cache: 'no-cache',
      credentials: 'include',
      headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json',
      },
      body: JSON.stringify({
        groupId: input.selectedGroupId,
        userId: userId,
        permission: permission,
        paginatorPageSize: input.paginatorPageSize,
        paginatorPage: input.paginatorPage
      })
    });
  },
  removeMember (userId, removeAlsoPermission, input) {
    let url = BASE_API_URL + 'member'
            + '?groupId=' + input.selectedGroupId
            + '&userId=' + userId
            + '&removeAlsoPermission=' + removeAlsoPermission
            + '&paginatorPageSize=' + input.paginatorPageSize
            + '&paginatorPage=' + input.paginatorPage;
    return apiRequest(url, {
      method: 'DELETE',
      cache: 'no-cache',
      credentials: 'include',
      headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json',
      }
    });
  },
  removePermission (userId, input) {
    let url = BASE_API_URL + 'permission'
            + '?groupId=' + input.selectedGroupId
            + '&userId=' + userId
            + '&paginatorPageSize=' + input.paginatorPageSize
            + '&paginatorPage=' + input.paginatorPage;
    return apiRequest(url, {
      method: 'DELETE',
      cache: 'no-cache',
      credentials: 'include',
      headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json',
      }
    });
  }
};
+8 −8
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@
              <font-awesome-icon icon="edit"></font-awesome-icon>
            </a>
            &nbsp;
            <a href="#" v-on:click.stop="openDeleteGroupModal(group)" class="text-danger" title="Delete">
            <a href="#" v-on:click.stop="openRemoveGroupModal(group)" class="text-danger" title="Delete">
              <font-awesome-icon icon="trash"></font-awesome-icon>
            </a>
          </span>
@@ -48,20 +48,20 @@
    <div class="text-center">
    </div>
    <RenameGroupModal ref="renameGroupModal" />
    <ConfirmDeleteGroupModal ref="confirmDeleteGroupModal" />
    <ConfirmRemoveGroupModal ref="confirmRemoveGroupModal" />
  </b-tab>
</template>

<script>
import RenameGroupModal from './modals/RenameGroupModal.vue'
import ConfirmDeleteGroupModal from './modals/ConfirmDeleteGroupModal.vue'
import { mapState, mapActions } from 'vuex'
import RenameGroupModal from './modals/RenameGroupModal.vue';
import ConfirmRemoveGroupModal from './modals/ConfirmRemoveGroupModal.vue';
import { mapState, mapActions } from 'vuex';

export default {
  name: 'GroupsPanel',
  components: {
    RenameGroupModal,
    ConfirmDeleteGroupModal
    ConfirmRemoveGroupModal
  },
  computed: mapState({
    model: state => state.model,
@@ -85,8 +85,8 @@ export default {
    openRenameGroupModal: function(group) {
      this.$refs.renameGroupModal.openRenameGroupModal(group);
    },
    openDeleteGroupModal: function(group) {
      this.$refs.confirmDeleteGroupModal.openDeleteGroupModal(group);
    openRemoveGroupModal: function(group) {
      this.$refs.confirmRemoveGroupModal.openRemoveGroupModal(group);
    },
    setPage: function(page) {
      console.log('setPage ', page);
Loading