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 @@
-
+