From 402b9ede2566cac62482bea898fa48791d04e62b Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Tue, 15 Nov 2016 10:49:58 +0000 Subject: [PATCH] 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 --- .classpath | 6 +- pom.xml | 12 +-- .../user/joinvre/server/JoinServiceImpl.java | 99 +++++-------------- .../server/portlet/JoinVREPortlet.java | 21 +--- .../portlets/user/test/TestForDeploy.java | 19 ---- 5 files changed, 32 insertions(+), 125 deletions(-) delete mode 100644 src/test/java/org/gcube/portlets/user/test/TestForDeploy.java diff --git a/.classpath b/.classpath index f6e00bd..9008b35 100644 --- a/.classpath +++ b/.classpath @@ -1,12 +1,12 @@ - + - + @@ -39,5 +39,5 @@ - + diff --git a/pom.xml b/pom.xml index 9bfb8bc..7d10503 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ org.gcube.portlets.user join-vre war - 3.1.0-SNAPSHOT + 3.2.0-SNAPSHOT gCube Join VRE Portlet Display the available VRE to Join @@ -70,21 +70,11 @@ com.github.gwtbootstrap gwt-bootstrap - - org.gcube.portal - custom-portal-handler - provided - org.gcube.common.portal portal-manager provided - - org.gcube.applicationsupportlayer - aslcore - provided - org.gcube.portal invites-common-library diff --git a/src/main/java/org/gcube/portlets/user/joinvre/server/JoinServiceImpl.java b/src/main/java/org/gcube/portlets/user/joinvre/server/JoinServiceImpl.java index a64a636..ff76b21 100644 --- a/src/main/java/org/gcube/portlets/user/joinvre/server/JoinServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/joinvre/server/JoinServiceImpl.java @@ -8,11 +8,8 @@ import java.util.List; 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.PortalContext; -import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper; import org.gcube.portal.databook.server.DBCassandraAstyanaxImpl; import org.gcube.portal.databook.server.DatabookStore; import org.gcube.portal.databook.shared.Invite; @@ -63,33 +60,7 @@ import com.liferay.portal.util.PortalUtil; @SuppressWarnings("serial") public class JoinServiceImpl extends RemoteServiceServlet implements JoinService { 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; - /** - * 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> getPortalSitesMappedToVRE() throws Exception { - ASLSession session = getASLSession(); + GroupManager gm = new LiferayGroupManager(); LinkedHashMap> toReturn = new LinkedHashMap>(); @@ -163,13 +134,14 @@ 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"); return toReturn; } - + PortalContext pContext = PortalContext.getConfiguration(); + List currUserGroups = new ArrayList(); - if (session.getUsername().compareTo(TEST_USER) != 0) { - GCubeUser currUser = new LiferayUserManager().getUserByUsername(session.getUsername()); + GCubeUser currUser = pContext.getCurrentUser(getThreadLocalRequest()); + if (currUser != null) { currUserGroups = gm.listGroupsByUser(currUser.getUserId()); } - + //for each root sub organizations (VO) for (GCubeGroup vOrg : rootGroupVO.getChildren()) { for (GCubeGroup vreOrganization : vOrg.getChildren()) { @@ -193,8 +165,7 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService ArrayList toUpdate = toReturn.get(toLookFor); UserBelonging belongs = UserBelonging.NOT_BELONGING; VRE toAdd = new VRE(vreID,vreName, vreDescription, vreLogoURL, groupName, friendlyURL, belongs, getVREMembershipType(vreOrganization.getMembershipType())); - if (session.getUsername().compareTo(TEST_USER) != 0) { - GCubeUser currUser = new LiferayUserManager().getUserByUsername(session.getUsername()); + if (currUser != null) { //check if the user belongs to it if (currUserGroups.contains(vreOrganization)) { toAdd.setUserBelonging(UserBelonging.BELONGING); @@ -279,30 +250,27 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService @Override public VRE getSelectedVRE(Long groupId) { _log.debug("*getting Selected Research Environment from referral, site id = " + groupId); - ASLSession session = getASLSession(); + VRE toReturn = null; try { GroupManager gm = new LiferayGroupManager(); - UserManager um = new LiferayUserManager(); GCubeGroup selectedVRE = gm.getGroup(groupId); String vreName = selectedVRE.getGroupName(); String vreDescription = selectedVRE.getDescription(); - + long logoId = selectedVRE.getLogoId(); String vreLogoURL = gm.getGroupLogoURL(logoId); String infraScope = gm.getInfrastructureScope(selectedVRE.getGroupId()); String friendlyURL = GCubePortalConstants.PREFIX_GROUP_URL+selectedVRE.getFriendlyURL(); - - - - GCubeUser currUser = um.getUserByUsername(session.getUsername()); + + GCubeUser currUser = PortalContext.getConfiguration().getCurrentUser(getThreadLocalRequest()); //check if the user belongs to it UserBelonging belongEnum = UserBelonging.NOT_BELONGING; if (gm.listGroupsByUser(currUser.getUserId()).contains(selectedVRE)) belongEnum = UserBelonging.BELONGING; - else if (checkPending(session.getUsername(), selectedVRE.getGroupId())) + else if (checkPending(currUser.getUsername(), selectedVRE.getGroupId())) belongEnum = UserBelonging.PENDING; //return the selected VRE for this user toReturn = new VRE(groupId, vreName, vreDescription, vreLogoURL, infraScope, friendlyURL, belongEnum, getVREMembershipType(selectedVRE.getMembershipType())); @@ -311,7 +279,7 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService } return toReturn; } - + /** * * @param type @@ -348,7 +316,7 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService @Override public void addMembershipRequest(String scope, String optionalMessage) { - String username = getASLSession().getUsername(); + String username = PortalContext.getConfiguration().getCurrentUser(getThreadLocalRequest()).getUsername(); if (optionalMessage == null || optionalMessage.compareTo("") == 0) optionalMessage = "none"; try { @@ -386,14 +354,12 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService @Override public boolean registerUser(String scope, long groupId, boolean isInvitation) { UserManager um = new LiferayUserManager(); - try { - ASLSession session = getASLSession(); - String username = session.getUsername(); - _log.debug("registerUser " +username + " to "+ scope); - GCubeUser currUser = um.getUserByUsername(username); + try { + GCubeUser currUser = PortalContext.getConfiguration().getCurrentUser(getThreadLocalRequest()); + _log.debug("registerUser " +currUser.getUsername() + " to "+ scope); GroupManager gm = new LiferayGroupManager(); 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(); _log.trace("Sleep 1 second ..."); Thread.sleep(1000); @@ -401,15 +367,15 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService _log.info("fakeRequest accepted"); if (isInvitation) { initStore(); - String inviteId = store.isExistingInvite(scope, session.getUserEmailAddress()); + String inviteId = store.isExistingInvite(scope, currUser.getEmail()); if (inviteId != null) { Invite invite = store.readInvite(inviteId); - store.setInviteStatus(scope, session.getUserEmailAddress(), InviteStatus.ACCEPTED); - LoginServiceUtil.notifyUserAcceptedInvite(username, scope, invite, getThreadLocalRequest()); + store.setInviteStatus(scope, currUser.getEmail(), InviteStatus.ACCEPTED); + LoginServiceUtil.notifyUserAcceptedInvite(currUser.getUsername(), scope, invite, getThreadLocalRequest()); } } else { - LoginServiceUtil.notifyUserSelfRegistration(username, scope, getThreadLocalRequest()); + LoginServiceUtil.notifyUserSelfRegistration(currUser.getUsername(), scope, getThreadLocalRequest()); _log.info("notifyUserSelfRegistration sent"); } } @@ -434,26 +400,15 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService @Override public String isExistingInvite(long groupId) { - getASLSession(); + _log.debug("initiating Store"); initStore(); _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); } diff --git a/src/main/java/org/gcube/portlets/user/joinvre/server/portlet/JoinVREPortlet.java b/src/main/java/org/gcube/portlets/user/joinvre/server/portlet/JoinVREPortlet.java index 00f20ba..062849b 100644 --- a/src/main/java/org/gcube/portlets/user/joinvre/server/portlet/JoinVREPortlet.java +++ b/src/main/java/org/gcube/portlets/user/joinvre/server/portlet/JoinVREPortlet.java @@ -7,34 +7,15 @@ import javax.portlet.ActionResponse; import javax.portlet.GenericPortlet; import javax.portlet.PortletException; import javax.portlet.PortletRequestDispatcher; -import javax.portlet.PortletSession; import javax.portlet.RenderRequest; 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 */ public class JoinVREPortlet extends GenericPortlet { - - private static Log _log = LogFactoryUtil.getLog(JoinVREPortlet.class); - public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException { - 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."); - } - + response.setContentType("text/html"); PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher("/WEB-INF/jsp/JoinVRE_view.jsp"); dispatcher.include(request, response); } diff --git a/src/test/java/org/gcube/portlets/user/test/TestForDeploy.java b/src/test/java/org/gcube/portlets/user/test/TestForDeploy.java deleted file mode 100644 index 9e86974..0000000 --- a/src/test/java/org/gcube/portlets/user/test/TestForDeploy.java +++ /dev/null @@ -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!"); - } - -}