() {
- @Override
- public void onFailure(Throwable caught) {
- add(new HTML("" +
- "Sorry, looks like something is broken with the server connection
" +
- "Please check your connection and try refresh this page.
"));
- }
+ @Override
+ public void onFailure(Throwable caught) {
+ add(new HTML("" +
+ "Sorry, looks like something is broken with the server connection
" +
+ "Please check your connection and try refresh this page.
"));
+ }
- @Override
- public void onSuccess(VREGroup group) {
- clear();
- PageHeader toAdd = new PageHeader();
- toAdd.setText(group.getName());
- toAdd.setSubtext(group.getDescription());
- add(toAdd);
- showMembers(group.getUsers());
- }
- });
-
+ @Override
+ public void onSuccess(VREGroup group) {
+ clear();
+ PageHeader toAdd = new PageHeader();
+ toAdd.setText("VRE managers");
+ toAdd.setSubtext("The moderators of this VRE");
+ add(toAdd);
+ if (group.getUsers().size() > 0)
+ showMembers(group.getUsers());
+ else
+ add(new HTML("There are no VRE Managers in this VRE, this is weird please report this issue.
"));
+ }
+ });
+ } else {
+ vreMemberService.getVREGroupUsers(teamId, new AsyncCallback() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ add(new HTML("" +
+ "Sorry, looks like something is broken with the server connection
" +
+ "Please check your connection and try refresh this page.
"));
+ }
+
+ @Override
+ public void onSuccess(VREGroup group) {
+ clear();
+ PageHeader toAdd = new PageHeader();
+ toAdd.setText(group.getName());
+ toAdd.setSubtext(group.getDescription());
+ add(toAdd);
+ if (group.getUsers().size() > 0)
+ showMembers(group.getUsers());
+ else
+ add(new HTML("This group has no members, VRE Managers can define VRE groups and associate members to these groups.
"));
+ }
+ });
+ }
} else { //show all the VRE Members
vreMemberService.getSiteUsers(new AsyncCallback>() {
@Override
@@ -80,4 +107,5 @@ public class VREMembersPanel extends FlowPanel {
private String getGroupShowId() {
return Window.Location.getParameter(Encoder.encode(GCubeSocialNetworking.GROUP_MEMBERS_OID));
}
+
}
diff --git a/src/main/java/org/gcube/portlets/user/vremembers/server/MembersServiceImpl.java b/src/main/java/org/gcube/portlets/user/vremembers/server/MembersServiceImpl.java
index 5d0112b..e0b70d0 100644
--- a/src/main/java/org/gcube/portlets/user/vremembers/server/MembersServiceImpl.java
+++ b/src/main/java/org/gcube/portlets/user/vremembers/server/MembersServiceImpl.java
@@ -7,7 +7,6 @@ import java.util.List;
import org.apache.commons.codec.binary.Base64;
import org.gcube.application.framework.core.session.ASLSession;
import org.gcube.application.framework.core.session.SessionManager;
-import org.gcube.common.portal.GCubePortalConstants;
import org.gcube.common.scope.impl.ScopeBean;
import org.gcube.common.scope.impl.ScopeBean.Type;
import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper;
@@ -25,6 +24,7 @@ import org.gcube.vomanagement.usermanagement.impl.LiferayGroupManager;
import org.gcube.vomanagement.usermanagement.impl.LiferayRoleManager;
import org.gcube.vomanagement.usermanagement.impl.LiferayUserManager;
import org.gcube.vomanagement.usermanagement.model.GCubeGroup;
+import org.gcube.vomanagement.usermanagement.model.GCubeRole;
import org.gcube.vomanagement.usermanagement.model.GCubeTeam;
import org.gcube.vomanagement.usermanagement.model.GCubeUser;
import org.slf4j.Logger;
@@ -79,7 +79,7 @@ public class MembersServiceImpl extends RemoteServiceServlet implements MembersS
}
@Override
public VREGroup getVREGroupUsers(String groupId) {
- String scope = getASLSession().getScope();
+ _log.info("Asking for members of team with id = " + groupId );
ArrayList groupUsers = new ArrayList();
long teamId = -1;
try{
@@ -87,8 +87,7 @@ public class MembersServiceImpl extends RemoteServiceServlet implements MembersS
} catch (NumberFormatException e) {
_log.error("The groupId is not a valid long: " + groupId);
return null;
- }
- _log.info("Asking for members of team with id = " + groupId + " in scope: " + scope);
+ }
GCubeTeam team2Return = null;
GCubeGroup parent = null;
if (isWithinPortal()) {
@@ -112,12 +111,35 @@ public class MembersServiceImpl extends RemoteServiceServlet implements MembersS
}
}
} else { //developmennt mode
- _log.info("Returning test team members with id = " + groupId + " in scope: " + scope);
+ _log.info("Returning test team members with id = " + groupId );
return new VREGroup(teamId, "TestTeam Name", "parent VRE", "Test Team Description", getTestUsers());
}
return new VREGroup(teamId, team2Return.getTeamName(), parent.getGroupName(), team2Return.getDescription(), groupUsers);
}
+ @Override
+ public VREGroup getVREManagers() {
+ ArrayList vreManagers = new ArrayList();
+ long currGroupId = getCurrentGroupID();
+ try {
+ long roleId = new LiferayRoleManager().getRole(GCubeRole.VRE_MANAGER_LABEL, currGroupId).getRoleId();
+ for (GCubeUser user : new LiferayUserManager().listUsersByGroupAndRole(currGroupId, roleId)) {
+ if (user.getUsername().compareTo("test.user") != 0) { //skip test.user
+ vreManagers.add(
+ new BelongingUser(
+ user.getUsername(),
+ user.getFullname(),
+ user.getUserAvatarURL(),
+ user.getJobTitle(),
+ user.getLocation_industry(), getUserProfileLink(user.getUsername() ), true));
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return new VREGroup(-100,"", "", "", vreManagers);
+ }
+
/**
*
* @param session the Asl Session
@@ -175,6 +197,10 @@ public class MembersServiceImpl extends RemoteServiceServlet implements MembersS
return portalUsers;
}
+
+
+
+
private String getUserProfileLink(String username) {
return "profile?"+ new String(Base64.encodeBase64(GCubeSocialNetworking.USER_PROFILE_OID.getBytes()))+"="+new String(Base64.encodeBase64(username.getBytes()));
}
@@ -193,5 +219,24 @@ public class MembersServiceImpl extends RemoteServiceServlet implements MembersS
portalUsers.add(new BelongingUser("pino.pinetti", "Tenth Testing User Photoed", "http://placehold.it/200x200", "hard worker the10th", "istiw777", "",true));
return portalUsers;
}
+ /**
+ * Get the current group ID
+ *
+ * @return the current group ID or null if an exception is thrown
+ * @throws Exception
+ * @throws CurrentGroupRetrievalException
+ */
+ private long getCurrentGroupID(){
+ GroupManager groupM = new LiferayGroupManager();
+ ASLSession session = getASLSession();
+ _log.debug("The current group NAME is --> " + session.getGroupName());
+ try {
+ return groupM.getGroupId(session.getGroupName());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return 0;
+ }
+
}