From 4744b7401f510551603061c95ca55cef50c4f11b Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Wed, 23 Mar 2016 10:08:45 +0000 Subject: [PATCH] self registration complete git-svn-id: https://svn.research-infrastructures.eu/d4science/gcube/trunk/portlets/user/join-vre@126084 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../joinvre/client/ui/AccessVREDialog.java | 3 +++ .../joinvre/client/ui/AccessVREDialog.ui.xml | 2 ++ .../client/ui/RequestMembershipDialog.java | 3 +-- .../user/joinvre/server/JoinServiceImpl.java | 26 ++++++++++++++++--- 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/gcube/portlets/user/joinvre/client/ui/AccessVREDialog.java b/src/main/java/org/gcube/portlets/user/joinvre/client/ui/AccessVREDialog.java index be19512..c12aebe 100644 --- a/src/main/java/org/gcube/portlets/user/joinvre/client/ui/AccessVREDialog.java +++ b/src/main/java/org/gcube/portlets/user/joinvre/client/ui/AccessVREDialog.java @@ -6,6 +6,7 @@ import org.gcube.portlets.user.joinvre.shared.VRE; import com.github.gwtbootstrap.client.ui.Button; import com.github.gwtbootstrap.client.ui.HelpBlock; +import com.github.gwtbootstrap.client.ui.Icon; import com.github.gwtbootstrap.client.ui.Modal; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; @@ -28,6 +29,7 @@ public class AccessVREDialog extends Composite { @UiField Button close; @UiField Button confirmRequest; @UiField HelpBlock helpBlock; + @UiField Icon loading; private boolean isInvitation = false; VRE myVRE = null; public AccessVREDialog(final VRE vre, boolean isInvitation) { @@ -53,6 +55,7 @@ public class AccessVREDialog extends Composite { @UiHandler("confirmRequest") void confirm(ClickEvent e) { helpBlock.setText("Registering to " + myVRE.getName() + " please wait ... "); + loading.setVisible(true); joinService.registerUser(myVRE.getinfraScope(), myVRE.getId(), isInvitation, new AsyncCallback() { @Override diff --git a/src/main/java/org/gcube/portlets/user/joinvre/client/ui/AccessVREDialog.ui.xml b/src/main/java/org/gcube/portlets/user/joinvre/client/ui/AccessVREDialog.ui.xml index b8d531a..30e1771 100644 --- a/src/main/java/org/gcube/portlets/user/joinvre/client/ui/AccessVREDialog.ui.xml +++ b/src/main/java/org/gcube/portlets/user/joinvre/client/ui/AccessVREDialog.ui.xml @@ -6,11 +6,13 @@ keyboard="true" animation="true"> + By entering this VRE you agree to the terms indicated in the Terms of Use of this gateway. + Confirm Request Close diff --git a/src/main/java/org/gcube/portlets/user/joinvre/client/ui/RequestMembershipDialog.java b/src/main/java/org/gcube/portlets/user/joinvre/client/ui/RequestMembershipDialog.java index 13cbfd7..83c426e 100644 --- a/src/main/java/org/gcube/portlets/user/joinvre/client/ui/RequestMembershipDialog.java +++ b/src/main/java/org/gcube/portlets/user/joinvre/client/ui/RequestMembershipDialog.java @@ -51,8 +51,7 @@ public class RequestMembershipDialog extends Composite { } @UiHandler("confirmRequest") void confirm(ClickEvent e) { - String text = optionalText.getText() == null || optionalText.getText().equals("") ? " ": optionalText.getText(); - + String text = optionalText.getText(); joinService.addMembershipRequest(myVRE.getinfraScope(), text, new AsyncCallback() { @Override public void onSuccess(Void result) { 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 e09b260..5db4796 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 @@ -2,6 +2,7 @@ package org.gcube.portlets.user.joinvre.server; import java.util.ArrayList; import java.util.Collections; +import java.util.Date; import java.util.LinkedHashMap; import java.util.List; @@ -12,6 +13,7 @@ import org.gcube.application.framework.core.session.SessionManager; import org.gcube.common.portal.CustomAttributeKeys; import org.gcube.common.portal.GCubePortalConstants; import org.gcube.common.portal.PortalContext; +import org.gcube.portal.custom.communitymanager.SiteManagerUtil; import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper; import org.gcube.portal.databook.server.DBCassandraAstyanaxImpl; import org.gcube.portal.databook.server.DatabookStore; @@ -36,10 +38,12 @@ import org.gcube.vomanagement.usermanagement.model.MembershipRequestStatus; import org.gcube.vomanagement.usermanagement.model.VirtualGroup; import com.google.gwt.user.server.rpc.RemoteServiceServlet; +import com.liferay.portal.kernel.cache.CacheRegistryUtil; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; +import com.liferay.portal.kernel.management.PortalManager; import com.liferay.portal.model.Group; import com.liferay.portal.model.VirtualHost; import com.liferay.portal.service.LayoutSetLocalServiceUtil; @@ -370,6 +374,8 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService @Override public void addMembershipRequest(String scope, String optionalMessage) { String username = getASLSession().getUsername(); + if (optionalMessage == null || optionalMessage.compareTo("") == 0) + optionalMessage = "none"; try { LoginServiceUtil.addMembershipRequest(username, scope, optionalMessage, getPortalUrl(), PortalContext.getConfiguration().getGatewayName()); } catch (Exception e) { @@ -382,15 +388,26 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService /** * the user to the VRE, plus send notifications to the vre manages of the vre + * in order to register a user i had to create a fake membership request because assigning a user to a group would have required + * the user to logout and login otherwise */ @Override public boolean registerUser(String scope, long groupId, boolean isInvitation) { - UserManager userM = new LiferayUserManager(); + UserManager um = new LiferayUserManager(); try { ASLSession session = getASLSession(); String username = session.getUsername(); - //add the user to the VRE - userM.assignUserToGroup(groupId, userM.getUserId(username)); + + _log.debug("registerUser " +username + " to "+ scope); + GCubeUser currUser = um.getUserByUsername(username); + GroupManager gm = new LiferayGroupManager(); + um.requestMembership(currUser.getUserId(), gm.getGroupIdFromInfrastructureScope(scope), "Automatic Request at " + new Date()); + _log.info("fakeRequest sent"); + String replierUsername = LiferayUserManager.getAdmin().getScreenName(); + _log.trace("Sleep 1 second ..."); + Thread.sleep(1000); + um.acceptMembershipRequest(currUser.getUserId(), groupId, true, replierUsername, "Automatic acceptance request at " + new Date()); + _log.info("fakeRequest accepted"); String gatewayName = PortalContext.getConfiguration().getGatewayName(); if (isInvitation) { initStore(); @@ -402,7 +419,7 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService } } else { - //LoginServiceUtil.notifyUserSelfRegistration(username, scope, getPortalBasicUrl(), gatewayName); + LoginServiceUtil.notifyUserSelfRegistration(username, scope, getPortalBasicUrl(), gatewayName); _log.info("notifyUserSelfRegistration sent"); } } @@ -410,6 +427,7 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService e.printStackTrace(); return false; } + return true; }