removed ASL Session, ported to gCube Client Context
git-svn-id: https://svn.research-infrastructures.eu/d4science/gcube/trunk/portlets/user/join-vre@134164 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
51fb7e23c9
commit
402b9ede25
|
@ -1,12 +1,12 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<classpath>
|
<classpath>
|
||||||
<classpathentry kind="src" output="target/join-vre-3.1.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
|
<classpathentry kind="src" output="target/join-vre-3.2.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="optional" value="true"/>
|
<attribute name="optional" value="true"/>
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry excluding="**" kind="src" output="target/join-vre-3.1.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources">
|
<classpathentry excluding="**" kind="src" output="target/join-vre-3.2.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
@ -39,5 +39,5 @@
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="output" path="target/join-vre-3.1.0-SNAPSHOT/WEB-INF/classes"/>
|
<classpathentry kind="output" path="target/join-vre-3.2.0-SNAPSHOT/WEB-INF/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
12
pom.xml
12
pom.xml
|
@ -13,7 +13,7 @@
|
||||||
<groupId>org.gcube.portlets.user</groupId>
|
<groupId>org.gcube.portlets.user</groupId>
|
||||||
<artifactId>join-vre</artifactId>
|
<artifactId>join-vre</artifactId>
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
<version>3.1.0-SNAPSHOT</version>
|
<version>3.2.0-SNAPSHOT</version>
|
||||||
<name>gCube Join VRE Portlet</name>
|
<name>gCube Join VRE Portlet</name>
|
||||||
<description>Display the available VRE to Join</description>
|
<description>Display the available VRE to Join</description>
|
||||||
<scm>
|
<scm>
|
||||||
|
@ -70,21 +70,11 @@
|
||||||
<groupId>com.github.gwtbootstrap</groupId>
|
<groupId>com.github.gwtbootstrap</groupId>
|
||||||
<artifactId>gwt-bootstrap</artifactId>
|
<artifactId>gwt-bootstrap</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.gcube.portal</groupId>
|
|
||||||
<artifactId>custom-portal-handler</artifactId>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.common.portal</groupId>
|
<groupId>org.gcube.common.portal</groupId>
|
||||||
<artifactId>portal-manager</artifactId>
|
<artifactId>portal-manager</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.gcube.applicationsupportlayer</groupId>
|
|
||||||
<artifactId>aslcore</artifactId>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.portal</groupId>
|
<groupId>org.gcube.portal</groupId>
|
||||||
<artifactId>invites-common-library</artifactId>
|
<artifactId>invites-common-library</artifactId>
|
||||||
|
|
|
@ -8,11 +8,8 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
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.portal.GCubePortalConstants;
|
||||||
import org.gcube.common.portal.PortalContext;
|
import org.gcube.common.portal.PortalContext;
|
||||||
import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper;
|
|
||||||
import org.gcube.portal.databook.server.DBCassandraAstyanaxImpl;
|
import org.gcube.portal.databook.server.DBCassandraAstyanaxImpl;
|
||||||
import org.gcube.portal.databook.server.DatabookStore;
|
import org.gcube.portal.databook.server.DatabookStore;
|
||||||
import org.gcube.portal.databook.shared.Invite;
|
import org.gcube.portal.databook.shared.Invite;
|
||||||
|
@ -63,33 +60,7 @@ import com.liferay.portal.util.PortalUtil;
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
public class JoinServiceImpl extends RemoteServiceServlet implements JoinService {
|
public class JoinServiceImpl extends RemoteServiceServlet implements JoinService {
|
||||||
private static Log _log = LogFactoryUtil.getLog(JoinServiceImpl.class);
|
private static Log _log = LogFactoryUtil.getLog(JoinServiceImpl.class);
|
||||||
public static final String TEST_USER = "test.user";
|
|
||||||
private static final String TEST_SCOPE = "/gcube/devsec/devVRE";
|
|
||||||
private static DatabookStore store;
|
private static DatabookStore store;
|
||||||
/**
|
|
||||||
* the current ASLSession
|
|
||||||
* @return the session
|
|
||||||
*/
|
|
||||||
private ASLSession getASLSession() {
|
|
||||||
String sessionID = this.getThreadLocalRequest().getSession().getId();
|
|
||||||
String user = (String) this.getThreadLocalRequest().getSession().getAttribute(ScopeHelper.USERNAME_ATTRIBUTE);
|
|
||||||
if (user == null) {
|
|
||||||
_log.warn("USER IS NULL setting test.user and Running OUTSIDE PORTAL");
|
|
||||||
user = getDevelopmentUser();
|
|
||||||
SessionManager.getInstance().getASLSession(sessionID, user).setScope("/gcube");
|
|
||||||
}
|
|
||||||
return SessionManager.getInstance().getASLSession(sessionID, user);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* when packaging test will fail if the user is not set to test.user
|
|
||||||
* @return .
|
|
||||||
*/
|
|
||||||
public String getDevelopmentUser() {
|
|
||||||
String user = TEST_USER;
|
|
||||||
// user = "andrea.rossi";
|
|
||||||
return user;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -143,7 +114,7 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
|
||||||
*/
|
*/
|
||||||
public LinkedHashMap<VRECategory, ArrayList<VRE>> getPortalSitesMappedToVRE() throws Exception {
|
public LinkedHashMap<VRECategory, ArrayList<VRE>> getPortalSitesMappedToVRE() throws Exception {
|
||||||
|
|
||||||
ASLSession session = getASLSession();
|
|
||||||
GroupManager gm = new LiferayGroupManager();
|
GroupManager gm = new LiferayGroupManager();
|
||||||
LinkedHashMap<VRECategory, ArrayList<VRE>> toReturn = new LinkedHashMap<VRECategory, ArrayList<VRE>>();
|
LinkedHashMap<VRECategory, ArrayList<VRE>> toReturn = new LinkedHashMap<VRECategory, ArrayList<VRE>>();
|
||||||
|
|
||||||
|
@ -163,10 +134,11 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
|
||||||
_log.error("Cannot find root organziation, please check gcube-data.properties file in $CATALINA_HOME/conf folder, unless your installing the Bundle");
|
_log.error("Cannot find root organziation, please check gcube-data.properties file in $CATALINA_HOME/conf folder, unless your installing the Bundle");
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
PortalContext pContext = PortalContext.getConfiguration();
|
||||||
|
|
||||||
List<GCubeGroup> currUserGroups = new ArrayList<GCubeGroup>();
|
List<GCubeGroup> currUserGroups = new ArrayList<GCubeGroup>();
|
||||||
if (session.getUsername().compareTo(TEST_USER) != 0) {
|
GCubeUser currUser = pContext.getCurrentUser(getThreadLocalRequest());
|
||||||
GCubeUser currUser = new LiferayUserManager().getUserByUsername(session.getUsername());
|
if (currUser != null) {
|
||||||
currUserGroups = gm.listGroupsByUser(currUser.getUserId());
|
currUserGroups = gm.listGroupsByUser(currUser.getUserId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -193,8 +165,7 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
|
||||||
ArrayList<VRE> toUpdate = toReturn.get(toLookFor);
|
ArrayList<VRE> toUpdate = toReturn.get(toLookFor);
|
||||||
UserBelonging belongs = UserBelonging.NOT_BELONGING;
|
UserBelonging belongs = UserBelonging.NOT_BELONGING;
|
||||||
VRE toAdd = new VRE(vreID,vreName, vreDescription, vreLogoURL, groupName, friendlyURL, belongs, getVREMembershipType(vreOrganization.getMembershipType()));
|
VRE toAdd = new VRE(vreID,vreName, vreDescription, vreLogoURL, groupName, friendlyURL, belongs, getVREMembershipType(vreOrganization.getMembershipType()));
|
||||||
if (session.getUsername().compareTo(TEST_USER) != 0) {
|
if (currUser != null) {
|
||||||
GCubeUser currUser = new LiferayUserManager().getUserByUsername(session.getUsername());
|
|
||||||
//check if the user belongs to it
|
//check if the user belongs to it
|
||||||
if (currUserGroups.contains(vreOrganization)) {
|
if (currUserGroups.contains(vreOrganization)) {
|
||||||
toAdd.setUserBelonging(UserBelonging.BELONGING);
|
toAdd.setUserBelonging(UserBelonging.BELONGING);
|
||||||
|
@ -279,11 +250,10 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
|
||||||
@Override
|
@Override
|
||||||
public VRE getSelectedVRE(Long groupId) {
|
public VRE getSelectedVRE(Long groupId) {
|
||||||
_log.debug("*getting Selected Research Environment from referral, site id = " + groupId);
|
_log.debug("*getting Selected Research Environment from referral, site id = " + groupId);
|
||||||
ASLSession session = getASLSession();
|
|
||||||
VRE toReturn = null;
|
VRE toReturn = null;
|
||||||
try {
|
try {
|
||||||
GroupManager gm = new LiferayGroupManager();
|
GroupManager gm = new LiferayGroupManager();
|
||||||
UserManager um = new LiferayUserManager();
|
|
||||||
GCubeGroup selectedVRE = gm.getGroup(groupId);
|
GCubeGroup selectedVRE = gm.getGroup(groupId);
|
||||||
String vreName = selectedVRE.getGroupName();
|
String vreName = selectedVRE.getGroupName();
|
||||||
String vreDescription = selectedVRE.getDescription();
|
String vreDescription = selectedVRE.getDescription();
|
||||||
|
@ -295,14 +265,12 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
|
||||||
String friendlyURL = GCubePortalConstants.PREFIX_GROUP_URL+selectedVRE.getFriendlyURL();
|
String friendlyURL = GCubePortalConstants.PREFIX_GROUP_URL+selectedVRE.getFriendlyURL();
|
||||||
|
|
||||||
|
|
||||||
|
GCubeUser currUser = PortalContext.getConfiguration().getCurrentUser(getThreadLocalRequest());
|
||||||
|
|
||||||
GCubeUser currUser = um.getUserByUsername(session.getUsername());
|
|
||||||
//check if the user belongs to it
|
//check if the user belongs to it
|
||||||
UserBelonging belongEnum = UserBelonging.NOT_BELONGING;
|
UserBelonging belongEnum = UserBelonging.NOT_BELONGING;
|
||||||
if (gm.listGroupsByUser(currUser.getUserId()).contains(selectedVRE))
|
if (gm.listGroupsByUser(currUser.getUserId()).contains(selectedVRE))
|
||||||
belongEnum = UserBelonging.BELONGING;
|
belongEnum = UserBelonging.BELONGING;
|
||||||
else if (checkPending(session.getUsername(), selectedVRE.getGroupId()))
|
else if (checkPending(currUser.getUsername(), selectedVRE.getGroupId()))
|
||||||
belongEnum = UserBelonging.PENDING;
|
belongEnum = UserBelonging.PENDING;
|
||||||
//return the selected VRE for this user
|
//return the selected VRE for this user
|
||||||
toReturn = new VRE(groupId, vreName, vreDescription, vreLogoURL, infraScope, friendlyURL, belongEnum, getVREMembershipType(selectedVRE.getMembershipType()));
|
toReturn = new VRE(groupId, vreName, vreDescription, vreLogoURL, infraScope, friendlyURL, belongEnum, getVREMembershipType(selectedVRE.getMembershipType()));
|
||||||
|
@ -348,7 +316,7 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addMembershipRequest(String scope, String optionalMessage) {
|
public void addMembershipRequest(String scope, String optionalMessage) {
|
||||||
String username = getASLSession().getUsername();
|
String username = PortalContext.getConfiguration().getCurrentUser(getThreadLocalRequest()).getUsername();
|
||||||
if (optionalMessage == null || optionalMessage.compareTo("") == 0)
|
if (optionalMessage == null || optionalMessage.compareTo("") == 0)
|
||||||
optionalMessage = "none";
|
optionalMessage = "none";
|
||||||
try {
|
try {
|
||||||
|
@ -387,13 +355,11 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
|
||||||
public boolean registerUser(String scope, long groupId, boolean isInvitation) {
|
public boolean registerUser(String scope, long groupId, boolean isInvitation) {
|
||||||
UserManager um = new LiferayUserManager();
|
UserManager um = new LiferayUserManager();
|
||||||
try {
|
try {
|
||||||
ASLSession session = getASLSession();
|
GCubeUser currUser = PortalContext.getConfiguration().getCurrentUser(getThreadLocalRequest());
|
||||||
String username = session.getUsername();
|
_log.debug("registerUser " +currUser.getUsername() + " to "+ scope);
|
||||||
_log.debug("registerUser " +username + " to "+ scope);
|
|
||||||
GCubeUser currUser = um.getUserByUsername(username);
|
|
||||||
GroupManager gm = new LiferayGroupManager();
|
GroupManager gm = new LiferayGroupManager();
|
||||||
um.requestMembership(currUser.getUserId(), gm.getGroupIdFromInfrastructureScope(scope), "Automatic Request at " + new Date());
|
um.requestMembership(currUser.getUserId(), gm.getGroupIdFromInfrastructureScope(scope), "Automatic Request at " + new Date());
|
||||||
_log.info("fakeRequest sent");
|
_log.debug("fakeRequest sent");
|
||||||
String replierUsername = LiferayUserManager.getAdmin().getScreenName();
|
String replierUsername = LiferayUserManager.getAdmin().getScreenName();
|
||||||
_log.trace("Sleep 1 second ...");
|
_log.trace("Sleep 1 second ...");
|
||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
|
@ -401,15 +367,15 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
|
||||||
_log.info("fakeRequest accepted");
|
_log.info("fakeRequest accepted");
|
||||||
if (isInvitation) {
|
if (isInvitation) {
|
||||||
initStore();
|
initStore();
|
||||||
String inviteId = store.isExistingInvite(scope, session.getUserEmailAddress());
|
String inviteId = store.isExistingInvite(scope, currUser.getEmail());
|
||||||
if (inviteId != null) {
|
if (inviteId != null) {
|
||||||
Invite invite = store.readInvite(inviteId);
|
Invite invite = store.readInvite(inviteId);
|
||||||
store.setInviteStatus(scope, session.getUserEmailAddress(), InviteStatus.ACCEPTED);
|
store.setInviteStatus(scope, currUser.getEmail(), InviteStatus.ACCEPTED);
|
||||||
LoginServiceUtil.notifyUserAcceptedInvite(username, scope, invite, getThreadLocalRequest());
|
LoginServiceUtil.notifyUserAcceptedInvite(currUser.getUsername(), scope, invite, getThreadLocalRequest());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
LoginServiceUtil.notifyUserSelfRegistration(username, scope, getThreadLocalRequest());
|
LoginServiceUtil.notifyUserSelfRegistration(currUser.getUsername(), scope, getThreadLocalRequest());
|
||||||
_log.info("notifyUserSelfRegistration sent");
|
_log.info("notifyUserSelfRegistration sent");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -434,26 +400,15 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String isExistingInvite(long groupId) {
|
public String isExistingInvite(long groupId) {
|
||||||
getASLSession();
|
|
||||||
_log.debug("initiating Store");
|
_log.debug("initiating Store");
|
||||||
initStore();
|
initStore();
|
||||||
_log.debug("initStore OK");
|
_log.debug("initStore OK");
|
||||||
String infraScope = "";
|
|
||||||
String email = "";
|
|
||||||
if (! isWithinPortal()) {
|
|
||||||
infraScope = TEST_SCOPE;
|
|
||||||
email = "m.assante@gmail.com";
|
|
||||||
} else {
|
|
||||||
GroupManager gm = new LiferayGroupManager();
|
|
||||||
email = getASLSession().getUserEmailAddress();
|
|
||||||
try {
|
|
||||||
infraScope = gm.getInfrastructureScope(groupId);
|
|
||||||
} catch (UserManagementSystemException | GroupRetrievalFault e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_log.debug("checking if invite exists for " + email + " on " +infraScope);
|
|
||||||
|
|
||||||
|
String email = PortalContext.getConfiguration().getCurrentUser(getThreadLocalRequest()).getEmail();
|
||||||
|
String infraScope = PortalContext.getConfiguration().getCurrentScope(getThreadLocalRequest());
|
||||||
|
|
||||||
|
_log.debug("checking if invite exists for " + email + " on " +infraScope);
|
||||||
return store.isExistingInvite(infraScope, email);
|
return store.isExistingInvite(infraScope, email);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,34 +7,15 @@ import javax.portlet.ActionResponse;
|
||||||
import javax.portlet.GenericPortlet;
|
import javax.portlet.GenericPortlet;
|
||||||
import javax.portlet.PortletException;
|
import javax.portlet.PortletException;
|
||||||
import javax.portlet.PortletRequestDispatcher;
|
import javax.portlet.PortletRequestDispatcher;
|
||||||
import javax.portlet.PortletSession;
|
|
||||||
import javax.portlet.RenderRequest;
|
import javax.portlet.RenderRequest;
|
||||||
import javax.portlet.RenderResponse;
|
import javax.portlet.RenderResponse;
|
||||||
|
|
||||||
import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper;
|
|
||||||
|
|
||||||
import com.liferay.portal.kernel.log.Log;
|
|
||||||
import com.liferay.portal.kernel.log.LogFactoryUtil;
|
|
||||||
import com.liferay.portal.kernel.util.WebKeys;
|
|
||||||
import com.liferay.portal.theme.ThemeDisplay;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Massimiliano Assante, ISTI-CNR - massimiliano.assante@isti.cnr.it
|
* @author Massimiliano Assante, ISTI-CNR - massimiliano.assante@isti.cnr.it
|
||||||
*/
|
*/
|
||||||
public class JoinVREPortlet extends GenericPortlet {
|
public class JoinVREPortlet extends GenericPortlet {
|
||||||
|
|
||||||
private static Log _log = LogFactoryUtil.getLog(JoinVREPortlet.class);
|
|
||||||
|
|
||||||
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
|
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
|
||||||
response.setContentType("text/html");
|
response.setContentType("text/html");
|
||||||
try {
|
|
||||||
ScopeHelper.setContext(request);
|
|
||||||
} catch(Exception e){
|
|
||||||
ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
|
|
||||||
request.getPortletSession().setAttribute(WebKeys.THEME_DISPLAY, themeDisplay, PortletSession.APPLICATION_SCOPE);
|
|
||||||
_log.error("The following exception is acceptable if the user is not logged.");
|
|
||||||
}
|
|
||||||
|
|
||||||
PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher("/WEB-INF/jsp/JoinVRE_view.jsp");
|
PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher("/WEB-INF/jsp/JoinVRE_view.jsp");
|
||||||
dispatcher.include(request, response);
|
dispatcher.include(request, response);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
package org.gcube.portlets.user.test;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
|
|
||||||
import org.gcube.portlets.user.joinvre.server.JoinServiceImpl;
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
public class TestForDeploy {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testUserIsTestUser() {
|
|
||||||
JoinServiceImpl serviceImpl = new JoinServiceImpl();
|
|
||||||
String username = serviceImpl.getDevelopmentUser();
|
|
||||||
System.out.println("username for deploy is: " + username);
|
|
||||||
assertTrue(username.compareTo(JoinServiceImpl.TEST_USER) == 0);
|
|
||||||
System.out.println("Test OK!");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue