From 15179e1595cf43dce527a5c15f25c68012c79b08 Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Wed, 16 Mar 2016 17:46:20 +0000 Subject: [PATCH] adapted for Liferay 6.2 git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/admin/register-vre-users@125519 82a268e6-3cf1-43bd-a215-b396298e98cf --- .settings/org.eclipse.wst.common.component | 3 - distro/descriptor.xml | 2 - pom.xml | 8 +- .../server/ManageUsersServiceImpl.java | 79 ++++++++++--------- src/main/webapp/WEB-INF/liferay-display.xml | 2 +- src/main/webapp/WEB-INF/liferay-portlet.xml | 2 +- 6 files changed, 43 insertions(+), 53 deletions(-) diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index 4f15ac2..7aaf430 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -5,9 +5,6 @@ - - uses - diff --git a/distro/descriptor.xml b/distro/descriptor.xml index 2c1ee8a..1f827ac 100644 --- a/distro/descriptor.xml +++ b/distro/descriptor.xml @@ -15,8 +15,6 @@ README LICENSE - INSTALL - MAINTAINERS changelog.xml 755 diff --git a/pom.xml b/pom.xml index aa8a7d2..4abedf0 100644 --- a/pom.xml +++ b/pom.xml @@ -98,13 +98,7 @@ org.gcube.common home-library provided - - - asm-all - asm - - - + org.gcube.portlets.widgets invite-friends-widget diff --git a/src/main/java/org/gcube/portlets/admin/manageusers/server/ManageUsersServiceImpl.java b/src/main/java/org/gcube/portlets/admin/manageusers/server/ManageUsersServiceImpl.java index e1aaf72..80e0710 100644 --- a/src/main/java/org/gcube/portlets/admin/manageusers/server/ManageUsersServiceImpl.java +++ b/src/main/java/org/gcube/portlets/admin/manageusers/server/ManageUsersServiceImpl.java @@ -7,6 +7,7 @@ import org.gcube.application.framework.core.session.ASLSession; import org.gcube.application.framework.core.session.SessionManager; import org.gcube.applicationsupportlayer.social.ApplicationNotificationsManager; import org.gcube.applicationsupportlayer.social.NotificationsManager; +import org.gcube.applicationsupportlayer.social.shared.SocialNetworkingUser; import org.gcube.common.homelibrary.home.HomeLibrary; import org.gcube.common.homelibrary.home.workspace.Workspace; import org.gcube.common.scope.impl.ScopeBean; @@ -38,11 +39,11 @@ import com.liferay.portal.service.UserLocalServiceUtil; public class ManageUsersServiceImpl extends RemoteServiceServlet implements ManageUsersService { private static final Logger _log = LoggerFactory.getLogger(ManageUsersServiceImpl.class); - private boolean withinPortal = false; + private GroupManager groupM = new LiferayGroupManager(); private UserManager userM = new LiferayUserManager(); - + private final static String POSITION = "POSITION"; private final static String LABS = "LABS"; @@ -59,16 +60,28 @@ public class ManageUsersServiceImpl extends RemoteServiceServlet implements Man } else { _log.info("LIFERAY PORTAL DETECTED user=" + user); - withinPortal = true; } return SessionManager.getInstance().getASLSession(sessionID, user); } - + /** + * + * @return true if you're running into the portal, false if in development + */ + private boolean isWithinPortal() { + try { + UserLocalServiceUtil.getService(); + return true; + } + catch (com.liferay.portal.kernel.bean.BeanLocatorException ex) { + _log.trace("Development Mode ON"); + return false; + } + } @Override public ArrayList getAvailableUsers() { getASLSession(); ArrayList toReturn = new ArrayList(); - if (withinPortal) { + if (isWithinPortal()) { return getNonBelongingUsersForVRE(); } else { @@ -105,19 +118,23 @@ public class ManageUsersServiceImpl extends RemoteServiceServlet implements Man try { long companyId = SiteManagerUtil.getCompany().getCompanyId(); _log.trace("Setting Thread Permission"); - User user = UserLocalServiceUtil.getUserByScreenName(companyId, ScopeHelper.getAdministratorUsername()); - PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user); + User userAdmin = UserLocalServiceUtil.getUserByScreenName(companyId, ScopeHelper.getAdministratorUsername()); + _log.trace("Setting Thread Permission for admin="+userAdmin.getScreenName()); + PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(userAdmin); PermissionThreadLocal.setPermissionChecker(permissionChecker); _log.trace("Setting Permission ok!"); ArrayList unregisteredUsers = new ArrayList(); List notBelongingUsers = userM.listUnregisteredUsersByGroup(getCurrentGroupID()); for (GCubeUser u : notBelongingUsers) { - String id = u.getScreenName(); - user = UserLocalServiceUtil.getUserByScreenName(companyId, id); - - String position = (user.getExpandoBridge().getAttribute(POSITION) != null) ? user.getExpandoBridge().getAttribute(POSITION).toString() : ""; - String labs = (user.getExpandoBridge().getAttribute(LABS) != null) ? user.getExpandoBridge().getAttribute(LABS).toString() : ""; + String id = u.getUsername(); + User user = UserLocalServiceUtil.getUserByScreenName(companyId, id); + String position = ""; + String labs = ""; + if (user.getExpandoBridge() != null && user.getExpandoBridge().hasAttribute(POSITION)) { + position = (user.getExpandoBridge().getAttribute(POSITION) != null) ? user.getExpandoBridge().getAttribute(POSITION).toString() : ""; + labs = (user.getExpandoBridge().getAttribute(LABS) != null) ? user.getExpandoBridge().getAttribute(LABS).toString() : ""; + } if ((u.getLastName() != null && u.getLastName().compareTo("") != 0)) { String firstLetter = u.getLastName().substring(0,1); String scope = getASLSession().getScope(); @@ -125,21 +142,19 @@ public class ManageUsersServiceImpl extends RemoteServiceServlet implements Man String email = u.getEmail(); String username = id; if (validator.is(Type.VRE)) { - email = "********@"+ email.split("@")[1]; + email = "********@"+ email.split("@")[1]; } PortalUserDTO myUser = new PortalUserDTO(username, firstLetter, u.getFirstName(), u.getLastName(), email, position, labs); unregisteredUsers.add(myUser); } } - _log.debug("The total unregistered users are: " + unregisteredUsers.size()); - _log.trace("Setting Thread Permission back to regular"); - user = UserLocalServiceUtil.getUserByScreenName(companyId, getASLSession().getUsername()); - permissionChecker = PermissionCheckerFactoryUtil.create(user, false); + User user = UserLocalServiceUtil.getUserByScreenName(companyId, getASLSession().getUsername()); + permissionChecker = PermissionCheckerFactoryUtil.create(user); PermissionThreadLocal.setPermissionChecker(permissionChecker); - + _log.trace("Setting Permission ok!"); - + return unregisteredUsers; } catch (Exception e) { @@ -156,9 +171,6 @@ public class ManageUsersServiceImpl extends RemoteServiceServlet implements Man try { //add the user to the VRE userM.assignUserToGroup(getCurrentGroupID(), userM.getUserId(user.getId())); - //add him to the HL - ASLSession session = getASLSession(); - addUserToHLGroup(user.getId(), session.getScope(), session.getUsername()); //send notification sendNotificationToUser(user); } @@ -181,16 +193,17 @@ public class ManageUsersServiceImpl extends RemoteServiceServlet implements Man List recipientIds = new ArrayList(); recipientIds.add(addressee.getId()); - + List recipients = new ArrayList(); recipients.add(new GenericItemBean(addressee.getId(), addressee.getId(), addressee.getName() + " " + addressee.getLastName(), "")); - + String subject = "Registration to Group Notification"; - String body = "Dear "+addressee.getName()+", \n\n" + session.getUserFullName() + " has registered you to the group " + getASLSession().getGroupName()+"."; + String body = "Dear "+addressee.getName()+", \n\n" + session.getUserFullName() + " has registered you to the group " + session.getGroupName()+"."; String messageId = workspace.getWorkspaceMessageManager().sendMessageToPortalLogins(subject, body, new ArrayList(), recipientIds); - + _log.debug("Sending message notification to: " + recipientIds.toString()); - NotificationsManager nm = new ApplicationNotificationsManager(getASLSession()); + NotificationsManager nm = new ApplicationNotificationsManager(session.getScope(), new SocialNetworkingUser( + session.getUsername(), session.getUserEmailAddress(), session.getUserFullName(), session.getUserAvatarId())); Thread thread = new Thread(new MessageNotificationsThread(recipients, messageId, subject, body, nm)); thread.start(); @@ -215,16 +228,4 @@ public class ManageUsersServiceImpl extends RemoteServiceServlet implements Man return toReturn; } - - private void addUserToHLGroup(String username, String group, String adminUsername) { - try { - org.gcube.common.homelibrary.home.workspace.usermanager.UserManager um = HomeLibrary.getHomeManagerFactory().getUserManager(); - um.associateUserToGroup(group, username, adminUsername); - } catch (Exception e) { - _log.error("Failed to get the usermanager from HL. Could not add user to the HL group"); - } - } - - - } diff --git a/src/main/webapp/WEB-INF/liferay-display.xml b/src/main/webapp/WEB-INF/liferay-display.xml index 90c3dac..f6d6ae5 100644 --- a/src/main/webapp/WEB-INF/liferay-display.xml +++ b/src/main/webapp/WEB-INF/liferay-display.xml @@ -1,5 +1,5 @@ - + diff --git a/src/main/webapp/WEB-INF/liferay-portlet.xml b/src/main/webapp/WEB-INF/liferay-portlet.xml index 7955968..2cc532a 100644 --- a/src/main/webapp/WEB-INF/liferay-portlet.xml +++ b/src/main/webapp/WEB-INF/liferay-portlet.xml @@ -1,5 +1,5 @@ - +