Added possibility to display VRE Groups and VRE Managers

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/vre-members@132487 82a268e6-3cf1-43bd-a215-b396298e98cf
master
Massimiliano Assante 8 years ago
parent 6526ea969b
commit 0a8221c38c

@ -1,19 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/vre-members-2.0.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
<classpathentry kind="src" output="target/vre-members-2.1.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry including="**/*.java" kind="src" output="src/main/webapp/WEB-INF/classes" path="src/main/resources"/>
<classpathentry excluding="**" kind="src" output="target/vre-members-2.1.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry including="**/*.java" kind="src" output="target/test-classes" path="src/test/resources"/>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
@ -31,5 +39,5 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/vre-members-2.0.0-SNAPSHOT/WEB-INF/classes"/>
<classpathentry kind="output" path="target/vre-members-2.1.0-SNAPSHOT/WEB-INF/classes"/>
</classpath>

@ -55,5 +55,6 @@
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
<nature>com.google.gwt.eclipse.core.gwtNature</nature>
<nature>com.liferay.ide.core.liferayNature</nature>
</natures>
</projectDescription>

@ -1,16 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="vre-members-portlet">
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources" />
<wb-resource deploy-path="/" source-path="/src/main/webapp"
tag="defaultRootSource" />
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java" />
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources"/>
<dependent-module archiveName="gcube-widgets-2.0.0-SNAPSHOT.jar"
deploy-path="/WEB-INF/lib" handle="module:/resource/gcube-widgets/gcube-widgets">
<dependent-module archiveName="gcube-widgets-2.0.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/gcube-widgets/gcube-widgets">
<dependency-type>uses</dependency-type>
</dependent-module>
<property name="java-output-path" value="/${module}/target/www/WEB-INF/classes" />
<property name="context-root" value="vre-members" />
<property name="java-output-path" value="/${module}/target/www/WEB-INF/classes"/>
<property name="context-root" value="vre-members"/>
</wb-module>
</project-modules>

@ -1,11 +1,17 @@
<ReleaseNotes>
<Changeset component="org.gcube.portlet.user.vre-members.2-0-0" date="2016-06-30">
<Changeset component="org.gcube.portlet.user.vre-members.2-1-0"
date="2016-10-03">
<Change>Added possibility to display VRE Groups and VRE Managers</Change>
</Changeset>
<Changeset component="org.gcube.portlet.user.vre-members.2-0-0"
date="2016-06-30">
<Change>Added Capability to display tagged VRE Groups</Change>
</Changeset>
<Changeset component="org.gcube.portlet.user.vre-members.1-0-1"
date="2014-12-13">
<Change>Added Client scope handler, to set the scope from the client
and help preventing the browser back button cache problem</Change>
and help preventing the browser back button cache problem
</Change>
</Changeset>
<Changeset component="org.gcube.portlet.user.vre-members.1-0-0"
date="2014-09-09">

@ -13,7 +13,7 @@
<groupId>org.gcube.portlets.user</groupId>
<artifactId>vre-members</artifactId>
<packaging>war</packaging>
<version>2.0.0-SNAPSHOT</version>
<version>2.1.0-SNAPSHOT</version>
<name>gCube VRE Members Portlet</name>
<description>
VRE Members display the members of the current VRE

@ -15,4 +15,5 @@ import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
public interface MembersService extends RemoteService {
ArrayList<BelongingUser> getSiteUsers();
VREGroup getVREGroupUsers(String teamId);
VREGroup getVREManagers();
}

@ -12,4 +12,6 @@ public interface MembersServiceAsync {
void getSiteUsers(AsyncCallback<ArrayList<BelongingUser>> callback);
void getVREGroupUsers(String teamId, AsyncCallback<VREGroup> callback);
void getVREManagers(AsyncCallback<VREGroup> callback);
}

@ -25,26 +25,53 @@ public class VREMembersPanel extends FlowPanel {
//if showing a VRE Group
if (getGroupShowId() != null) {
String teamId = Encoder.decode(getGroupShowId());
vreMemberService.getVREGroupUsers(teamId, new AsyncCallback<VREGroup>() {
if (teamId.compareTo("-100")==0) {
vreMemberService.getVREManagers(new AsyncCallback<VREGroup>() {
@Override
public void onFailure(Throwable caught) {
add(new HTML("<div class=\"nofeed-message\">" +
"Sorry, looks like something is broken with the server connection<br> " +
"Please check your connection and try refresh this page.</div>"));
}
@Override
public void onFailure(Throwable caught) {
add(new HTML("<div class=\"nofeed-message\">" +
"Sorry, looks like something is broken with the server connection<br> " +
"Please check your connection and try refresh this page.</div>"));
}
@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("<div class=\"nofeed-message\">There are no VRE Managers in this VRE, this is weird please report this issue.</div>"));
}
});
} else {
vreMemberService.getVREGroupUsers(teamId, new AsyncCallback<VREGroup>() {
@Override
public void onFailure(Throwable caught) {
add(new HTML("<div class=\"nofeed-message\">" +
"Sorry, looks like something is broken with the server connection<br> " +
"Please check your connection and try refresh this page.</div>"));
}
@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("<div class=\"nofeed-message\">This group has no members, VRE Managers can define VRE groups and associate members to these groups.</div>"));
}
});
}
} else { //show all the VRE Members
vreMemberService.getSiteUsers(new AsyncCallback<ArrayList<BelongingUser>>() {
@Override
@ -80,4 +107,5 @@ public class VREMembersPanel extends FlowPanel {
private String getGroupShowId() {
return Window.Location.getParameter(Encoder.encode(GCubeSocialNetworking.GROUP_MEMBERS_OID));
}
}

@ -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<BelongingUser> groupUsers = new ArrayList<BelongingUser>();
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<BelongingUser> vreManagers = new ArrayList<BelongingUser>();
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;
}
}

Loading…
Cancel
Save