예제 #1
0
  private void isUserMemberOfVo() {

    // CHECK USER IF PRESENT
    if (session.getUser() != null) {

      GetMemberByUser req =
          new GetMemberByUser(
              vo.getId(),
              session.getUser().getId(),
              new JsonCallbackEvents() {
                @Override
                public void onFinished(JavaScriptObject jso) {

                  Member member = jso.cast();
                  if (member.getVoId() == vo.getId()) {

                    // USER IS MEMBER OF VO
                    if (groupName != null && !groupName.isEmpty()) {

                      GetMemberGroups call =
                          new GetMemberGroups(
                              member.getId(),
                              new JsonCallbackEvents() {
                                @Override
                                public void onFinished(JavaScriptObject jso) {

                                  ArrayList<Group> groups = JsonUtils.jsoAsList(jso);
                                  for (Group g : groups) {
                                    if (g.getId() == group.getId()) {
                                      // USER IS MEMBER OF GROUP
                                      prepareGui(PerunEntity.GROUP, "EXTENSION");
                                      return;
                                    }
                                  }
                                  // USER IS NOT MEMBER OF GROUP
                                  prepareGui(PerunEntity.GROUP, "INITIAL");
                                }

                                @Override
                                public void onError(PerunError error) {

                                  RootLayoutPanel panel = RootLayoutPanel.get();
                                  panel.clear();
                                  panel.add(getErrorWidget(error));
                                }
                              });
                      call.retrieveData();

                    } else {
                      // only VO application
                      prepareGui(PerunEntity.VIRTUAL_ORGANIZATION, "EXTENSION");
                    }
                  } else {

                    // TODO display error ? - retrieved member is not member of VO ??

                  }
                }

                public void onError(PerunError error) {

                  // not member of VO - load initial
                  if (error.getName().equalsIgnoreCase("MemberNotExistsException")) {
                    if (groupName != null && !groupName.isEmpty()) {

                      // load application to group for NOT vo members
                      prepareGui(PerunEntity.GROUP, "INITIAL");

                      // Do NOT display application to Group if not member of VO
                      // RootLayoutPanel panel = RootLayoutPanel.get();
                      // panel.clear();
                      // panel.add(getCustomErrorWidget(error,
                      // ApplicationMessages.INSTANCE.mustBeVoMemberFirst()));

                    } else {
                      prepareGui(PerunEntity.VIRTUAL_ORGANIZATION, "INITIAL");
                    }
                  } else {

                    RootLayoutPanel panel = RootLayoutPanel.get();
                    panel.clear();
                    panel.add(getErrorWidget(error));
                  }
                }
              });
      req.setHidden(true);
      req.retrieveData();
      return;
    }

    // UNKNOWN USER - LOAD INITIAL
    if (groupName != null && !groupName.isEmpty()) {
      prepareGui(PerunEntity.GROUP, "INITIAL");
    } else {
      prepareGui(PerunEntity.VIRTUAL_ORGANIZATION, "INITIAL");
    }

    return;
  }
예제 #2
0
 /**
  * Creates a tab instance
  *
  * @param vo VO to add admin into
  */
 public AddVoManagerTabItem(VirtualOrganization vo) {
   this.voId = vo.getId();
   this.vo = vo;
 }