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; }
/** * Creates a tab instance * * @param vo VO to add admin into */ public AddVoManagerTabItem(VirtualOrganization vo) { this.voId = vo.getId(); this.vo = vo; }