2016-02-05 17:34:44 +01:00
|
|
|
package org.gcube.vomanagement.usermanagement.impl;
|
|
|
|
|
2016-06-28 15:42:20 +02:00
|
|
|
import java.io.Serializable;
|
2016-02-05 17:34:44 +01:00
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.HashMap;
|
2016-12-29 17:05:36 +01:00
|
|
|
import java.util.HashSet;
|
2016-12-06 16:54:34 +01:00
|
|
|
import java.util.LinkedHashMap;
|
2016-02-05 17:34:44 +01:00
|
|
|
import java.util.List;
|
2016-02-29 15:45:56 +01:00
|
|
|
import java.util.Locale;
|
2016-02-08 17:48:05 +01:00
|
|
|
import java.util.Map;
|
2016-12-29 17:05:36 +01:00
|
|
|
import java.util.Set;
|
2016-02-05 17:34:44 +01:00
|
|
|
|
2016-02-08 17:48:05 +01:00
|
|
|
import org.gcube.vomanagement.usermanagement.GroupManager;
|
2016-02-05 17:34:44 +01:00
|
|
|
import org.gcube.vomanagement.usermanagement.UserManager;
|
|
|
|
import org.gcube.vomanagement.usermanagement.exception.GroupRetrievalFault;
|
|
|
|
import org.gcube.vomanagement.usermanagement.exception.RoleRetrievalFault;
|
2016-04-13 18:00:19 +02:00
|
|
|
import org.gcube.vomanagement.usermanagement.exception.TeamRetrievalFault;
|
2016-02-05 17:34:44 +01:00
|
|
|
import org.gcube.vomanagement.usermanagement.exception.UserManagementPortalException;
|
|
|
|
import org.gcube.vomanagement.usermanagement.exception.UserManagementSystemException;
|
|
|
|
import org.gcube.vomanagement.usermanagement.exception.UserRetrievalFault;
|
2016-12-29 17:05:36 +01:00
|
|
|
import org.gcube.vomanagement.usermanagement.exception.VirtualGroupNotExistingException;
|
2016-06-28 17:00:26 +02:00
|
|
|
import org.gcube.vomanagement.usermanagement.model.CustomAttributeKeys;
|
2016-02-05 17:34:44 +01:00
|
|
|
import org.gcube.vomanagement.usermanagement.model.Email;
|
2016-12-29 17:05:36 +01:00
|
|
|
import org.gcube.vomanagement.usermanagement.model.GCubeGroup;
|
2016-02-08 17:48:05 +01:00
|
|
|
import org.gcube.vomanagement.usermanagement.model.GCubeMembershipRequest;
|
|
|
|
import org.gcube.vomanagement.usermanagement.model.GCubeRole;
|
|
|
|
import org.gcube.vomanagement.usermanagement.model.GCubeUser;
|
|
|
|
import org.gcube.vomanagement.usermanagement.model.MembershipRequestStatus;
|
2016-02-10 17:59:03 +01:00
|
|
|
import org.gcube.vomanagement.usermanagement.util.ManagementUtils;
|
2016-02-05 17:34:44 +01:00
|
|
|
|
2016-12-06 16:54:34 +01:00
|
|
|
import com.liferay.portal.kernel.dao.orm.QueryUtil;
|
2016-02-05 17:34:44 +01:00
|
|
|
import com.liferay.portal.kernel.exception.PortalException;
|
|
|
|
import com.liferay.portal.kernel.exception.SystemException;
|
2016-09-28 13:10:18 +02:00
|
|
|
import com.liferay.portal.kernel.log.Log;
|
|
|
|
import com.liferay.portal.kernel.log.LogFactoryUtil;
|
2016-03-25 11:41:30 +01:00
|
|
|
import com.liferay.portal.kernel.util.DigesterUtil;
|
|
|
|
import com.liferay.portal.kernel.util.HttpUtil;
|
2016-12-06 16:54:34 +01:00
|
|
|
import com.liferay.portal.kernel.util.OrderByComparator;
|
|
|
|
import com.liferay.portal.kernel.util.OrderByComparatorFactoryUtil;
|
2016-05-04 15:50:15 +02:00
|
|
|
import com.liferay.portal.model.Contact;
|
2016-02-05 17:34:44 +01:00
|
|
|
import com.liferay.portal.model.EmailAddress;
|
|
|
|
import com.liferay.portal.model.Group;
|
2016-02-08 17:48:05 +01:00
|
|
|
import com.liferay.portal.model.MembershipRequest;
|
|
|
|
import com.liferay.portal.model.Role;
|
2016-03-01 15:25:04 +01:00
|
|
|
import com.liferay.portal.model.RoleConstants;
|
2016-04-13 18:00:19 +02:00
|
|
|
import com.liferay.portal.model.Team;
|
2016-02-05 17:34:44 +01:00
|
|
|
import com.liferay.portal.model.User;
|
2016-02-08 17:48:05 +01:00
|
|
|
import com.liferay.portal.security.auth.PrincipalThreadLocal;
|
|
|
|
import com.liferay.portal.security.permission.PermissionChecker;
|
|
|
|
import com.liferay.portal.security.permission.PermissionCheckerFactoryUtil;
|
|
|
|
import com.liferay.portal.security.permission.PermissionThreadLocal;
|
2016-05-04 15:50:15 +02:00
|
|
|
import com.liferay.portal.service.ContactLocalServiceUtil;
|
2016-02-05 17:34:44 +01:00
|
|
|
import com.liferay.portal.service.GroupLocalServiceUtil;
|
2016-04-06 14:43:14 +02:00
|
|
|
import com.liferay.portal.service.ImageLocalServiceUtil;
|
2016-02-08 17:48:05 +01:00
|
|
|
import com.liferay.portal.service.MembershipRequestLocalServiceUtil;
|
2016-03-01 15:25:04 +01:00
|
|
|
import com.liferay.portal.service.RoleLocalServiceUtil;
|
2016-02-08 17:48:05 +01:00
|
|
|
import com.liferay.portal.service.RoleServiceUtil;
|
|
|
|
import com.liferay.portal.service.ServiceContext;
|
2016-04-13 18:00:19 +02:00
|
|
|
import com.liferay.portal.service.TeamLocalServiceUtil;
|
2016-02-05 17:34:44 +01:00
|
|
|
import com.liferay.portal.service.UserLocalServiceUtil;
|
2016-02-29 15:45:56 +01:00
|
|
|
import com.liferay.portal.util.PortalUtil;
|
2016-03-25 11:41:30 +01:00
|
|
|
import com.liferay.portal.webserver.WebServerServletTokenUtil;
|
2016-02-05 17:34:44 +01:00
|
|
|
|
|
|
|
public class LiferayUserManager implements UserManager {
|
|
|
|
/**
|
|
|
|
* logger
|
|
|
|
*/
|
2016-09-28 13:10:18 +02:00
|
|
|
private static final Log _log = LogFactoryUtil.getLog(LiferayUserManager.class);
|
2016-02-08 17:48:05 +01:00
|
|
|
/**
|
|
|
|
* this method sets the Admin privileges in the local thread, needed to perform such operations.
|
|
|
|
*/
|
|
|
|
private void doAsAdmin() {
|
2016-03-01 15:25:04 +01:00
|
|
|
try {
|
|
|
|
User admin = getAdmin();
|
|
|
|
long userId = admin.getUserId();
|
2016-02-08 17:48:05 +01:00
|
|
|
PrincipalThreadLocal.setName(userId);
|
|
|
|
PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(UserLocalServiceUtil.getUser(userId));
|
|
|
|
PermissionThreadLocal.setPermissionChecker(permissionChecker);
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
2016-03-01 15:25:04 +01:00
|
|
|
public static User getAdmin() {
|
|
|
|
final long companyId = PortalUtil.getDefaultCompanyId();
|
|
|
|
Role role = null;
|
|
|
|
try {
|
|
|
|
role = getRoleById(companyId, RoleConstants.ADMINISTRATOR);
|
|
|
|
for (final User admin : UserLocalServiceUtil.getRoleUsers(role.getRoleId())) {
|
2016-03-16 17:19:03 +01:00
|
|
|
if (admin.isActive())
|
|
|
|
return admin;
|
2016-03-01 15:25:04 +01:00
|
|
|
}
|
|
|
|
} catch (final Exception e) {
|
|
|
|
_log.error("Utils::getAdmin Exception", e);
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
public static Role getRoleById(final long companyId, final String roleStrId) {
|
|
|
|
try {
|
|
|
|
return RoleLocalServiceUtil.getRole(companyId, roleStrId);
|
|
|
|
} catch (final Exception e) {
|
|
|
|
_log.error("Utils::getRoleById Exception", e);
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
2016-02-08 17:48:05 +01:00
|
|
|
//simple user mapping
|
2016-06-28 17:00:26 +02:00
|
|
|
private GCubeUser mapLRUser(User u) throws PortalException, SystemException {
|
2016-02-05 17:34:44 +01:00
|
|
|
if (u != null) {
|
|
|
|
List<Email> emails = new ArrayList<Email>();
|
|
|
|
for (EmailAddress e : u.getEmailAddresses()) {
|
|
|
|
emails.add(new Email(e.getAddress(), e.getType().toString(), e.isPrimary()));
|
|
|
|
}
|
2016-06-28 17:00:26 +02:00
|
|
|
String locationIndustry = "";
|
|
|
|
try {
|
|
|
|
locationIndustry = (String) readCustomAttr(u.getUserId(), CustomAttributeKeys.USER_LOCATION_INDUSTRY.getKeyName());
|
|
|
|
} catch (UserRetrievalFault e1) {
|
|
|
|
e1.printStackTrace();
|
|
|
|
}
|
2016-02-08 17:48:05 +01:00
|
|
|
return new GCubeUser(
|
2016-02-05 17:34:44 +01:00
|
|
|
u.getUserId(),
|
|
|
|
u.getScreenName(),
|
|
|
|
u.getEmailAddress(),
|
|
|
|
u.getFirstName(),
|
|
|
|
u.getMiddleName(),
|
|
|
|
u.getLastName(),
|
|
|
|
u.getFullName(),
|
|
|
|
u.getCreateDate().getTime(),
|
2016-03-25 11:41:30 +01:00
|
|
|
getUserAvatarAbsoluteURL(u),
|
2016-02-05 17:34:44 +01:00
|
|
|
u.isMale(),
|
|
|
|
u.getJobTitle(),
|
2016-06-28 17:00:26 +02:00
|
|
|
locationIndustry,
|
2016-02-05 17:34:44 +01:00
|
|
|
emails);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
return null;
|
|
|
|
}
|
2016-03-25 11:41:30 +01:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @param u
|
|
|
|
* @return the absolute path of the avatar URL comprising security token e.g. /image/user_male_portrait?img_id=22910&img_id_token=0RJ5WkeDV9F9bETGlqzb7LahygM%3D&t=1458899199747
|
|
|
|
* @throws PortalException
|
|
|
|
* @throws SystemException
|
|
|
|
*/
|
|
|
|
private static String getUserAvatarAbsoluteURL(User u) throws PortalException, SystemException {
|
|
|
|
String pictureBaseURL = u.isMale() ? "/image/user_male_portrait?img_id=" : "/image/user_female_portrait?img_id=";
|
|
|
|
String img_id_token = HttpUtil.encodeURL(DigesterUtil.digest(u.getUuid()));
|
|
|
|
String token = WebServerServletTokenUtil.getToken(u.getPortraitId());
|
|
|
|
return pictureBaseURL+u.getPortraitId()+"&img_id_token="+img_id_token+"&t="+token;
|
|
|
|
}
|
2016-06-28 17:00:26 +02:00
|
|
|
private GCubeMembershipRequest mapLRMembershipRequest(MembershipRequest req) throws PortalException, SystemException {
|
2016-02-08 17:48:05 +01:00
|
|
|
MembershipRequestStatus requestStatus = MembershipRequestStatus.REQUEST;
|
|
|
|
if (req.getStatusId() == 1)
|
|
|
|
requestStatus = MembershipRequestStatus.APPROVED;
|
|
|
|
else if (req.getStatusId() == 2)
|
|
|
|
requestStatus = MembershipRequestStatus.DENIED;
|
|
|
|
|
|
|
|
//get the user requesting it
|
|
|
|
GCubeUser requestingUser = null;
|
|
|
|
User theUser = UserLocalServiceUtil.getUser(req.getUserId());
|
|
|
|
if (theUser.isActive())
|
|
|
|
requestingUser = mapLRUser(theUser);
|
|
|
|
GCubeUser replierUser = null;
|
|
|
|
if (req.getReplierUserId() != 0) { //means there is a reply for this request
|
|
|
|
User theReplier = UserLocalServiceUtil.getUser(req.getReplierUserId());
|
|
|
|
if (theUser.isActive())
|
|
|
|
replierUser = mapLRUser(theReplier);
|
|
|
|
}
|
2016-03-01 15:25:04 +01:00
|
|
|
|
2016-02-08 17:48:05 +01:00
|
|
|
GCubeMembershipRequest toReturn = new GCubeMembershipRequest(
|
|
|
|
req.getMembershipRequestId(),
|
|
|
|
req.getGroupId(),
|
|
|
|
requestingUser,
|
|
|
|
req.getCreateDate(),
|
|
|
|
req.getComments(),
|
|
|
|
req.getReplyComments(),
|
|
|
|
replierUser,
|
2017-04-19 18:28:59 +02:00
|
|
|
req.getReplyDate(),
|
2016-02-08 17:48:05 +01:00
|
|
|
requestStatus);
|
|
|
|
return toReturn;
|
|
|
|
}
|
2016-03-21 11:40:55 +01:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
2016-02-05 17:34:44 +01:00
|
|
|
@Override
|
2016-03-28 16:32:20 +02:00
|
|
|
public GCubeUser createUser(boolean autoScreenName, String username, String email, String firstName, String middleName, String lastName,
|
|
|
|
String jobTitle, String location_industry, String backgroundSummary, boolean male, String reminderQuestion, String reminderAnswer) throws UserManagementSystemException {
|
2016-03-17 12:20:52 +01:00
|
|
|
return createUserBody(
|
|
|
|
autoScreenName,
|
|
|
|
username,
|
|
|
|
email,
|
|
|
|
firstName,
|
|
|
|
middleName,
|
|
|
|
lastName,
|
|
|
|
jobTitle,
|
2016-03-28 16:32:20 +02:00
|
|
|
location_industry,
|
2016-03-17 12:20:52 +01:00
|
|
|
backgroundSummary,
|
|
|
|
male,
|
|
|
|
reminderQuestion,
|
|
|
|
reminderAnswer,
|
2016-03-21 16:47:44 +01:00
|
|
|
false,
|
2016-04-06 14:43:14 +02:00
|
|
|
false,
|
2016-05-04 15:50:15 +02:00
|
|
|
null, null,
|
|
|
|
null, null, null,
|
2016-05-04 16:58:46 +02:00
|
|
|
null, null);
|
2016-03-17 12:20:52 +01:00
|
|
|
}
|
2016-03-21 11:40:55 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
2016-03-17 12:20:52 +01:00
|
|
|
@Override
|
2016-03-28 16:32:20 +02:00
|
|
|
public GCubeUser createUser(boolean autoScreenName, String username, String email, String firstName, String middleName, String lastName,
|
|
|
|
String jobTitle, String location_industry, String backgroundSummary, boolean male, String reminderQuestion, String reminderAnswer, boolean sendEmail, boolean forcePasswordReset)
|
2016-04-06 14:43:14 +02:00
|
|
|
throws UserManagementSystemException {
|
|
|
|
return createUserBody(
|
|
|
|
autoScreenName,
|
|
|
|
username,
|
|
|
|
email,
|
|
|
|
firstName,
|
|
|
|
middleName,
|
|
|
|
lastName,
|
|
|
|
jobTitle,
|
|
|
|
location_industry,
|
2016-06-28 15:16:10 +02:00
|
|
|
backgroundSummary,
|
2016-04-06 14:43:14 +02:00
|
|
|
male,
|
|
|
|
reminderQuestion,
|
|
|
|
reminderAnswer,
|
|
|
|
sendEmail,
|
|
|
|
forcePasswordReset,
|
2016-05-04 15:50:15 +02:00
|
|
|
null, null,
|
|
|
|
null, null, null,
|
2016-05-04 16:58:46 +02:00
|
|
|
null, null);
|
2016-04-06 14:43:14 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public GCubeUser createUser(boolean autoScreenName, String username, String email, String firstName, String middleName, String lastName,
|
|
|
|
String jobTitle, String location_industry, String backgroundSummary, boolean male, String reminderQuestion, String reminderAnswer, boolean sendEmail, boolean forcePasswordReset,
|
|
|
|
byte[] portraitBytes)
|
|
|
|
throws UserManagementSystemException {
|
2016-03-17 12:20:52 +01:00
|
|
|
return createUserBody(
|
|
|
|
autoScreenName,
|
|
|
|
username,
|
|
|
|
email,
|
|
|
|
firstName,
|
|
|
|
middleName,
|
|
|
|
lastName,
|
|
|
|
jobTitle,
|
2016-03-28 16:32:20 +02:00
|
|
|
location_industry,
|
2016-06-28 15:16:10 +02:00
|
|
|
backgroundSummary,
|
2016-03-17 12:20:52 +01:00
|
|
|
male,
|
|
|
|
reminderQuestion,
|
|
|
|
reminderAnswer,
|
2016-03-21 16:47:44 +01:00
|
|
|
sendEmail,
|
2016-04-06 14:43:14 +02:00
|
|
|
forcePasswordReset,
|
2016-05-04 15:50:15 +02:00
|
|
|
portraitBytes, null,
|
|
|
|
null, null, null,
|
2016-05-04 16:58:46 +02:00
|
|
|
null, null);
|
2016-03-17 12:20:52 +01:00
|
|
|
}
|
2016-03-21 16:47:44 +01:00
|
|
|
|
2016-05-04 15:50:15 +02:00
|
|
|
@Override
|
|
|
|
public GCubeUser createUser(boolean autoScreenName, String username,
|
|
|
|
String email, String firstName, String middleName, String lastName,
|
|
|
|
String jobTitle, String location_industry,
|
|
|
|
String backgroundSummary, boolean male, String reminderQuestion,
|
|
|
|
String reminderAnswer, boolean sendEmail,
|
|
|
|
boolean forcePasswordReset, byte[] portraitBytes, String mySpacesn,
|
|
|
|
String twittersn, String facebooksn, String skypesn,
|
2016-05-04 16:58:46 +02:00
|
|
|
String jabbersn, String aimsn)
|
2016-05-04 15:50:15 +02:00
|
|
|
throws UserManagementSystemException {
|
|
|
|
return createUserBody(
|
|
|
|
autoScreenName,
|
|
|
|
username,
|
|
|
|
email,
|
|
|
|
firstName,
|
|
|
|
middleName,
|
|
|
|
lastName,
|
2016-06-28 15:16:10 +02:00
|
|
|
jobTitle,
|
2016-05-04 15:50:15 +02:00
|
|
|
location_industry,
|
2016-06-28 15:16:10 +02:00
|
|
|
backgroundSummary,
|
2016-05-04 15:50:15 +02:00
|
|
|
male,
|
|
|
|
reminderQuestion,
|
|
|
|
reminderAnswer,
|
|
|
|
sendEmail,
|
|
|
|
forcePasswordReset,
|
|
|
|
portraitBytes, mySpacesn,
|
|
|
|
twittersn, facebooksn, skypesn,
|
2016-05-04 16:58:46 +02:00
|
|
|
jabbersn, aimsn);
|
2016-05-04 15:50:15 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Body for the different createUser functions.
|
|
|
|
* @param autoScreenName
|
|
|
|
* @param username
|
|
|
|
* @param email
|
|
|
|
* @param firstName
|
|
|
|
* @param middleName
|
|
|
|
* @param lastName
|
|
|
|
* @param jobTitle
|
|
|
|
* @param location_industry
|
|
|
|
* @param backgroundSummary
|
|
|
|
* @param male
|
|
|
|
* @param reminderQuestion
|
|
|
|
* @param reminderAnswer
|
|
|
|
* @param sendEmail
|
|
|
|
* @param forcePasswordReset
|
|
|
|
* @param portraitBytes
|
|
|
|
* @param mySpacesn
|
|
|
|
* @param twittersn
|
|
|
|
* @param facebooksn
|
|
|
|
* @param skypesn
|
|
|
|
* @param jabbersn
|
|
|
|
* @param aimsn
|
|
|
|
* @param webSite
|
|
|
|
* @return
|
|
|
|
*/
|
2016-03-17 12:20:52 +01:00
|
|
|
private GCubeUser createUserBody(boolean autoScreenName, String username,
|
|
|
|
String email, String firstName, String middleName, String lastName,
|
2016-03-28 16:32:20 +02:00
|
|
|
String jobTitle, String location_industry, String backgroundSummary, boolean male,
|
2016-05-04 15:50:15 +02:00
|
|
|
String reminderQuestion, String reminderAnswer, boolean sendEmail, boolean forcePasswordReset, byte[] portraitBytes,
|
2016-05-04 16:58:46 +02:00
|
|
|
String mySpacesn, String twittersn, String facebooksn, String skypesn, String jabbersn, String aimsn
|
2016-05-04 15:50:15 +02:00
|
|
|
){
|
2016-03-21 16:47:44 +01:00
|
|
|
|
2016-02-29 15:45:56 +01:00
|
|
|
GCubeUser toReturn = null;
|
|
|
|
try {
|
2016-03-01 15:25:04 +01:00
|
|
|
_log.debug("Trying createuser " + email);
|
|
|
|
Long defaultCompanyId = PortalUtil.getDefaultCompanyId();
|
|
|
|
Long defaultUserId = UserLocalServiceUtil.getDefaultUserId(defaultCompanyId);
|
2016-02-29 15:45:56 +01:00
|
|
|
|
2016-03-01 15:25:04 +01:00
|
|
|
boolean autoPassword = false;
|
|
|
|
Locale locale = new Locale("en_US");
|
|
|
|
int prefixId = 0;
|
|
|
|
int suffixId = 0;
|
|
|
|
int birthdayMonth = 1;
|
|
|
|
int birthdayDay = 1;
|
|
|
|
int birthdayYear = 1970;
|
|
|
|
String password1 = "training1";
|
|
|
|
String password2 = password1;
|
|
|
|
User added = UserLocalServiceUtil.addUser(
|
|
|
|
defaultUserId,
|
|
|
|
defaultCompanyId,
|
|
|
|
autoPassword,
|
|
|
|
password1,
|
|
|
|
password2,
|
|
|
|
autoScreenName,
|
|
|
|
username,
|
|
|
|
email,
|
|
|
|
0L,
|
2016-06-28 17:00:26 +02:00
|
|
|
"",
|
2016-03-01 15:25:04 +01:00
|
|
|
locale,
|
|
|
|
firstName,
|
|
|
|
middleName,
|
|
|
|
lastName,
|
|
|
|
prefixId,
|
|
|
|
suffixId,
|
|
|
|
male,
|
|
|
|
birthdayMonth,
|
|
|
|
birthdayDay,
|
|
|
|
birthdayYear,
|
|
|
|
jobTitle,
|
|
|
|
null,
|
|
|
|
null,
|
|
|
|
null,
|
|
|
|
null,
|
2016-03-17 12:20:52 +01:00
|
|
|
sendEmail,
|
2016-03-01 15:25:04 +01:00
|
|
|
new ServiceContext());
|
|
|
|
added.setComments(backgroundSummary);
|
|
|
|
UserLocalServiceUtil.updateUser(added);
|
|
|
|
_log.debug("CreateUser " + lastName + " SUCCESS");
|
|
|
|
UserLocalServiceUtil.updateAgreedToTermsOfUse(added.getUserId(), true);
|
2018-03-08 14:10:27 +01:00
|
|
|
UserLocalServiceUtil.updateEmailAddressVerified(added.getUserId(), true);
|
2016-03-21 16:47:44 +01:00
|
|
|
UserLocalServiceUtil.updatePasswordReset(added.getUserId(), forcePasswordReset);
|
2016-03-01 15:25:04 +01:00
|
|
|
if (reminderQuestion == null || reminderQuestion.compareTo("") == 0)
|
|
|
|
reminderQuestion = "Unknown question";
|
|
|
|
if (reminderAnswer == null || reminderAnswer.compareTo("") == 0)
|
|
|
|
reminderAnswer = "Unknown answer";
|
|
|
|
UserLocalServiceUtil.updateReminderQuery(added.getUserId(), reminderQuestion, reminderAnswer);
|
|
|
|
_log.debug("User " + lastName + " has agreed to ToU");
|
2018-03-08 14:10:27 +01:00
|
|
|
_log.debug("User " + lastName + " has verified the Email");
|
2016-03-08 15:10:06 +01:00
|
|
|
_log.debug("User " + lastName + " updatePasswordReset & updateReminderQuery");
|
2016-04-06 14:43:14 +02:00
|
|
|
|
2016-06-28 17:00:26 +02:00
|
|
|
//try save the location/industry
|
|
|
|
saveCustomAttr(added.getUserId(), CustomAttributeKeys.USER_LOCATION_INDUSTRY.getKeyName(), location_industry);
|
|
|
|
|
2016-04-06 14:43:14 +02:00
|
|
|
// try to change user's avatar
|
|
|
|
if(portraitBytes != null){
|
|
|
|
try{
|
|
|
|
_log.debug("Updating user's avatar");
|
|
|
|
UserLocalServiceUtil.updatePortrait(added.getUserId(), portraitBytes);
|
|
|
|
_log.debug("User's avatar set OK");
|
|
|
|
}catch(PortalException e1){
|
|
|
|
_log.debug("Unable to set user's avatar", e1);
|
|
|
|
}
|
|
|
|
catch(SystemException e1){
|
|
|
|
_log.debug("Unable to set user's avatar", e1);
|
|
|
|
}
|
|
|
|
}
|
2016-05-04 16:58:46 +02:00
|
|
|
|
2016-05-04 15:50:15 +02:00
|
|
|
// retrieve the contact
|
|
|
|
Contact contact = added.getContact();
|
2016-04-06 14:43:14 +02:00
|
|
|
|
2016-05-04 15:50:15 +02:00
|
|
|
// try to set contact information
|
|
|
|
if (mySpacesn != null && mySpacesn.compareTo("") != 0)
|
|
|
|
contact.setMySpaceSn(mySpacesn);
|
|
|
|
if (twittersn != null && twittersn.compareTo("") != 0)
|
|
|
|
contact.setTwitterSn(twittersn);
|
|
|
|
if (facebooksn != null && facebooksn.compareTo("") != 0)
|
|
|
|
contact.setFacebookSn(facebooksn);
|
|
|
|
if (skypesn != null && skypesn.compareTo("") != 0)
|
|
|
|
contact.setSkypeSn(skypesn);
|
|
|
|
if (jabbersn != null && jabbersn.compareTo("") != 0)
|
|
|
|
contact.setJabberSn(jabbersn);
|
|
|
|
if (aimsn != null && aimsn.compareTo("") != 0)
|
|
|
|
contact.setAimSn(aimsn);
|
2016-05-04 16:58:46 +02:00
|
|
|
|
2016-05-04 15:50:15 +02:00
|
|
|
// update contact
|
|
|
|
ContactLocalServiceUtil.updateContact(contact);
|
2016-05-04 16:58:46 +02:00
|
|
|
|
2016-03-01 15:25:04 +01:00
|
|
|
return mapLRUser(added);
|
2016-06-28 17:00:26 +02:00
|
|
|
} catch (Exception e) {
|
2016-03-01 15:25:04 +01:00
|
|
|
e.printStackTrace();
|
2016-06-28 17:00:26 +02:00
|
|
|
}
|
2016-02-29 15:45:56 +01:00
|
|
|
return toReturn;
|
2016-03-21 16:47:44 +01:00
|
|
|
|
2016-02-29 15:45:56 +01:00
|
|
|
}
|
2016-03-21 16:47:44 +01:00
|
|
|
|
2016-02-29 15:45:56 +01:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
2016-02-08 17:48:05 +01:00
|
|
|
public GCubeUser getUserByUsername(String username) throws UserManagementSystemException, UserRetrievalFault {
|
2016-02-05 17:34:44 +01:00
|
|
|
User toGet = null;
|
2016-02-08 17:48:05 +01:00
|
|
|
GCubeUser toReturn = null;
|
2016-02-05 17:34:44 +01:00
|
|
|
try {
|
2016-05-31 11:52:32 +02:00
|
|
|
//_log.debug("Trying to fetch user by username = " + username);
|
2016-02-10 17:59:03 +01:00
|
|
|
toGet = UserLocalServiceUtil.getUserByScreenName(ManagementUtils.getCompany().getCompanyId(), username);
|
2016-02-05 17:34:44 +01:00
|
|
|
toReturn = mapLRUser(toGet);
|
2017-01-25 14:05:10 +01:00
|
|
|
} catch (PortalException e1) {
|
|
|
|
throw new UserRetrievalFault("User not existing", username, e1);
|
2016-02-05 17:34:44 +01:00
|
|
|
} catch (SystemException e) {
|
2017-01-25 14:05:10 +01:00
|
|
|
_log.error("SystemException: Failed to fetch user by username = " + username);
|
2016-02-05 17:34:44 +01:00
|
|
|
throw new UserManagementSystemException(e.getMessage(), e);
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
2016-03-08 15:10:06 +01:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
2016-03-14 11:30:27 +01:00
|
|
|
@Deprecated
|
|
|
|
public GCubeUser getUserByScreenName(String username) throws UserManagementSystemException, UserRetrievalFault {
|
|
|
|
return getUserByUsername(username);
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
2016-03-08 15:10:06 +01:00
|
|
|
public GCubeUser getUserById(long userId) throws UserManagementSystemException, UserRetrievalFault {
|
|
|
|
User toGet = null;
|
|
|
|
GCubeUser toReturn = null;
|
|
|
|
try {
|
|
|
|
_log.debug("Trying to fetch user by LR Id = " + userId);
|
|
|
|
toGet = UserLocalServiceUtil.getUser(userId);
|
|
|
|
toReturn = mapLRUser(toGet);
|
|
|
|
} catch (PortalException e) {
|
2017-01-25 14:05:10 +01:00
|
|
|
throw new UserRetrievalFault("User not existing", userId, e);
|
2016-03-08 15:10:06 +01:00
|
|
|
} catch (SystemException e) {
|
|
|
|
throw new UserManagementSystemException(e.getMessage(), e);
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
2016-03-28 16:32:20 +02:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public String getUserProfessionalBackground(long userId) throws UserManagementSystemException, UserRetrievalFault {
|
|
|
|
User toGet = null;
|
|
|
|
String toReturn = null;
|
|
|
|
try {
|
|
|
|
_log.debug("Trying to fetch user Professional Background by LR Id = " + userId);
|
|
|
|
toGet = UserLocalServiceUtil.getUser(userId);
|
|
|
|
toReturn = toGet.getComments();
|
|
|
|
} catch (PortalException e) {
|
2017-01-25 14:05:10 +01:00
|
|
|
throw new UserRetrievalFault("User not existing", userId, e);
|
2016-03-28 16:32:20 +02:00
|
|
|
} catch (SystemException e) {
|
|
|
|
throw new UserManagementSystemException(e.getMessage(), e);
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
2016-05-23 17:31:31 +02:00
|
|
|
|
2016-05-05 17:00:20 +02:00
|
|
|
@Override
|
|
|
|
public void setUserProfessionalBackground(long userId, String summary)
|
|
|
|
throws UserManagementSystemException, UserRetrievalFault {
|
|
|
|
User user = null;
|
|
|
|
try {
|
|
|
|
_log.debug("Trying to set user Professional Background by LR Id = " + userId);
|
|
|
|
user = UserLocalServiceUtil.getUser(userId);
|
|
|
|
user.setComments(summary);
|
2016-05-06 09:49:59 +02:00
|
|
|
UserLocalServiceUtil.updateUser(user);
|
2016-05-05 17:00:20 +02:00
|
|
|
} catch (PortalException e) {
|
2017-01-25 14:05:10 +01:00
|
|
|
throw new UserRetrievalFault("User not existing", userId, e);
|
2016-05-05 17:00:20 +02:00
|
|
|
} catch (SystemException e) {
|
|
|
|
throw new UserManagementSystemException(e.getMessage(), e);
|
|
|
|
}
|
|
|
|
}
|
2016-05-23 17:31:31 +02:00
|
|
|
|
2016-02-05 17:34:44 +01:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
2016-12-06 16:54:34 +01:00
|
|
|
public GCubeUser getUserByEmail(String emailAddress) throws UserManagementSystemException, UserRetrievalFault {
|
2016-02-05 17:34:44 +01:00
|
|
|
User toGet = null;
|
2016-02-08 17:48:05 +01:00
|
|
|
GCubeUser toReturn = null;
|
2016-02-05 17:34:44 +01:00
|
|
|
try {
|
2016-02-10 17:59:03 +01:00
|
|
|
_log.debug("Trying to fetch user by emailAddress = " + emailAddress);
|
|
|
|
toGet = UserLocalServiceUtil.getUserByEmailAddress(ManagementUtils.getCompany().getCompanyId(), emailAddress);
|
2016-02-05 17:34:44 +01:00
|
|
|
toReturn = mapLRUser(toGet);
|
|
|
|
} catch (PortalException e) {
|
2017-01-25 14:05:10 +01:00
|
|
|
throw new UserRetrievalFault("emailAddress not existing", e);
|
2016-02-05 17:34:44 +01:00
|
|
|
} catch (SystemException e) {
|
|
|
|
throw new UserManagementSystemException(e.getMessage(), e);
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
2016-02-08 17:48:05 +01:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
2016-02-09 18:53:54 +01:00
|
|
|
*
|
2016-02-08 17:48:05 +01:00
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public long getUserId(String screenName) throws UserManagementSystemException, UserRetrievalFault {
|
|
|
|
return getUserByUsername(screenName).getUserId();
|
|
|
|
}
|
|
|
|
/*
|
|
|
|
* LISTING ENTITIES
|
|
|
|
*/
|
2016-02-05 17:34:44 +01:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
2016-12-29 16:43:57 +01:00
|
|
|
public List<GCubeUser> listUsers(boolean indexed) throws UserManagementSystemException {
|
|
|
|
if (indexed)
|
|
|
|
return listUsers();
|
|
|
|
_log.debug("Asked for listUsers non indexed");
|
2016-02-08 17:48:05 +01:00
|
|
|
List<GCubeUser> toReturn = new ArrayList<GCubeUser>();
|
2016-02-05 17:34:44 +01:00
|
|
|
try {
|
2016-12-06 16:54:34 +01:00
|
|
|
OrderByComparator comparator = OrderByComparatorFactoryUtil.create("User_", "screenname", true);
|
|
|
|
List<User> lrUsers = UserLocalServiceUtil.search(ManagementUtils.getCompany().getCompanyId(), "", 0, null, QueryUtil.ALL_POS, QueryUtil.ALL_POS, comparator);
|
2016-02-05 17:34:44 +01:00
|
|
|
for (User user : lrUsers) {
|
|
|
|
if (user.isActive())
|
|
|
|
toReturn.add(mapLRUser(user));
|
|
|
|
}
|
|
|
|
} catch (SystemException e) {
|
|
|
|
throw new UserManagementSystemException(e.getMessage(), e);
|
|
|
|
} catch (PortalException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
2016-12-29 16:43:57 +01:00
|
|
|
public List<GCubeUser> listUsers() throws UserManagementSystemException {
|
|
|
|
List<GCubeUser> toReturn = new ArrayList<GCubeUser>();
|
|
|
|
try {
|
|
|
|
List<User> lrUsers = UserLocalServiceUtil.getUsers(QueryUtil.ALL_POS, QueryUtil.ALL_POS);
|
|
|
|
for (User user : lrUsers) {
|
|
|
|
if (user.isActive())
|
|
|
|
toReturn.add(mapLRUser(user));
|
|
|
|
}
|
|
|
|
} catch (SystemException e) {
|
|
|
|
throw new UserManagementSystemException(e.getMessage(), e);
|
|
|
|
} catch (PortalException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
2018-03-08 14:10:27 +01:00
|
|
|
public List<GCubeUser> listUsers(int start, int end) throws UserManagementSystemException {
|
|
|
|
List<GCubeUser> toReturn = new ArrayList<GCubeUser>();
|
|
|
|
try {
|
|
|
|
List<User> lrUsers = UserLocalServiceUtil.getUsers(start, end);
|
|
|
|
for (User user : lrUsers) {
|
|
|
|
if (user.isActive())
|
|
|
|
toReturn.add(mapLRUser(user));
|
|
|
|
}
|
|
|
|
} catch (SystemException e) {
|
|
|
|
throw new UserManagementSystemException(e.getMessage(), e);
|
|
|
|
} catch (PortalException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
public int getUsersCount() throws UserManagementSystemException {
|
|
|
|
try {
|
|
|
|
return UserLocalServiceUtil.getUsersCount();
|
|
|
|
} catch (SystemException e) {
|
|
|
|
throw new UserManagementSystemException(e.getMessage(), e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
2016-02-08 17:48:05 +01:00
|
|
|
public List<GCubeUser> listUsersByGroup(long groupId) throws UserManagementSystemException, GroupRetrievalFault, UserRetrievalFault {
|
|
|
|
List<GCubeUser> toReturn = new ArrayList<GCubeUser>();
|
2016-12-29 16:43:57 +01:00
|
|
|
try {
|
|
|
|
for (User user : UserLocalServiceUtil.getGroupUsers(groupId)) {
|
|
|
|
if (user.isActive())
|
|
|
|
toReturn.add(mapLRUser(user));
|
|
|
|
}
|
|
|
|
} catch (PortalException e) {
|
2017-01-25 14:05:10 +01:00
|
|
|
throw new GroupRetrievalFault("listUsersByGroup not existing group", groupId, e);
|
2016-12-29 16:43:57 +01:00
|
|
|
} catch (SystemException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
2018-03-08 14:10:27 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public List<GCubeUser> listUsersByGroup(long groupId, int start, int end) throws UserManagementSystemException, GroupRetrievalFault, UserRetrievalFault {
|
|
|
|
List<GCubeUser> toReturn = new ArrayList<GCubeUser>();
|
|
|
|
try {
|
|
|
|
for (User user : UserLocalServiceUtil.getGroupUsers(groupId, start, end)) {
|
|
|
|
if (user.isActive())
|
|
|
|
toReturn.add(mapLRUser(user));
|
|
|
|
}
|
|
|
|
} catch (PortalException e) {
|
|
|
|
throw new GroupRetrievalFault("listUsersByGroup not existing group", groupId, e);
|
|
|
|
} catch (SystemException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
public int getGroupUsersCount(long groupId) throws GroupRetrievalFault {
|
|
|
|
try {
|
|
|
|
return UserLocalServiceUtil.getGroupUsersCount(groupId);
|
|
|
|
} catch (SystemException e) {
|
|
|
|
throw new GroupRetrievalFault("listUsersByGroup not existing group", groupId, e);
|
|
|
|
}
|
|
|
|
}
|
2016-12-29 16:43:57 +01:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public List<GCubeUser> listUsersByGroup(long groupId, boolean indexed) throws UserManagementSystemException, GroupRetrievalFault, UserRetrievalFault {
|
|
|
|
if (indexed)
|
|
|
|
return listUsersByGroup(groupId);
|
|
|
|
List<GCubeUser> toReturn = new ArrayList<GCubeUser>();
|
2016-02-05 17:34:44 +01:00
|
|
|
try {
|
2016-12-06 16:54:34 +01:00
|
|
|
OrderByComparator comparator = OrderByComparatorFactoryUtil.create("User_", "screenname", true);
|
|
|
|
LinkedHashMap<String, Object> params = new LinkedHashMap<String, Object>();
|
|
|
|
params.put("usersGroups", groupId);
|
|
|
|
List<User> usersByGroup = UserLocalServiceUtil.search(ManagementUtils.getCompany().getCompanyId(), "", 0, params, QueryUtil.ALL_POS, QueryUtil.ALL_POS, comparator);
|
|
|
|
for (User user : usersByGroup) {
|
2016-02-05 17:34:44 +01:00
|
|
|
if (user.isActive())
|
|
|
|
toReturn.add(mapLRUser(user));
|
|
|
|
}
|
|
|
|
} catch (PortalException e) {
|
2017-01-25 14:05:10 +01:00
|
|
|
throw new GroupRetrievalFault("listUsersByGroup not existing group", groupId, e);
|
2018-03-08 14:10:27 +01:00
|
|
|
} catch (SystemException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
public List<GCubeUser> searchUsersByGroup(String keywords, long groupId) throws GroupRetrievalFault {
|
|
|
|
List<GCubeUser> toReturn = new ArrayList<GCubeUser>();
|
|
|
|
try {
|
|
|
|
OrderByComparator comparator = OrderByComparatorFactoryUtil.create("User_", "screenname", true);
|
|
|
|
LinkedHashMap<String, Object> params = new LinkedHashMap<>();
|
|
|
|
params.put("usersGroups", groupId);
|
|
|
|
List<User> usersByGroup = UserLocalServiceUtil.search(
|
|
|
|
ManagementUtils.getCompany().getCompanyId(), keywords, 0, params, QueryUtil.ALL_POS, QueryUtil.ALL_POS, comparator);
|
|
|
|
for (User user : usersByGroup) {
|
|
|
|
if (user.isActive())
|
|
|
|
toReturn.add(mapLRUser(user));
|
|
|
|
}
|
|
|
|
} catch (PortalException e) {
|
|
|
|
throw new GroupRetrievalFault("listUsersByGroup not existing group", groupId, e);
|
2016-02-05 17:34:44 +01:00
|
|
|
} catch (SystemException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
2016-02-08 17:48:05 +01:00
|
|
|
public List<GCubeUser> listUsersByGroupName(String name) throws UserManagementSystemException, GroupRetrievalFault, UserRetrievalFault {
|
|
|
|
List<GCubeUser> toReturn = new ArrayList<GCubeUser>();
|
2016-02-05 17:34:44 +01:00
|
|
|
try {
|
2016-02-10 17:59:03 +01:00
|
|
|
Group g = (GroupLocalServiceUtil.getGroup(ManagementUtils.getCompany().getCompanyId(), name));
|
2016-12-06 16:54:34 +01:00
|
|
|
return listUsersByGroup(g.getGroupId());
|
2016-02-05 17:34:44 +01:00
|
|
|
} catch (PortalException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
} catch (SystemException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
2016-02-08 17:48:05 +01:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
2016-02-05 17:34:44 +01:00
|
|
|
@Override
|
2016-02-08 17:48:05 +01:00
|
|
|
public Map<GCubeUser, List<GCubeRole>> listUsersAndRolesByGroup(long groupId) throws GroupRetrievalFault, UserManagementSystemException, UserRetrievalFault {
|
|
|
|
Map<GCubeUser, List<GCubeRole>> toReturn = new HashMap<GCubeUser, List<GCubeRole>>();
|
|
|
|
try {
|
|
|
|
Group g = GroupLocalServiceUtil.getGroup(groupId);
|
2016-02-10 17:59:03 +01:00
|
|
|
_log.debug("Asked for users and roles of group: "+g.getName());
|
2016-02-05 17:34:44 +01:00
|
|
|
|
2016-12-29 16:43:57 +01:00
|
|
|
List<User> usersByGroup = UserLocalServiceUtil.getGroupUsers(groupId);
|
2017-03-22 10:33:26 +01:00
|
|
|
|
2016-12-06 16:54:34 +01:00
|
|
|
for (User user : usersByGroup) {
|
2016-02-08 17:48:05 +01:00
|
|
|
if (user.isActive()) {
|
|
|
|
long userId = user.getUserId();
|
|
|
|
doAsAdmin();
|
|
|
|
List<Role> userRoles = RoleServiceUtil.getUserGroupRoles(userId, groupId);
|
|
|
|
List<GCubeRole> toAdd = new ArrayList<GCubeRole>();
|
|
|
|
for (Role role : userRoles) {
|
2016-02-09 18:53:54 +01:00
|
|
|
toAdd.add(LiferayRoleManager.mapLRRole(role));
|
2016-02-08 17:48:05 +01:00
|
|
|
}
|
|
|
|
toReturn.put(mapLRUser(user), toAdd);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (PortalException e1) {
|
2017-01-25 14:05:10 +01:00
|
|
|
throw new GroupRetrievalFault("Group not existing (I think you better check)", groupId, e1);
|
2016-02-08 17:48:05 +01:00
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return toReturn;
|
2016-02-05 17:34:44 +01:00
|
|
|
}
|
|
|
|
|
2016-02-08 17:48:05 +01:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
2016-02-05 17:34:44 +01:00
|
|
|
@Override
|
2016-02-08 17:48:05 +01:00
|
|
|
public List<GCubeUser> listUsersByGroupAndRole(long groupId, long roleId) throws UserManagementSystemException, RoleRetrievalFault, GroupRetrievalFault, UserRetrievalFault {
|
|
|
|
Map<GCubeUser, List<GCubeRole>> toIterate = listUsersAndRolesByGroup(groupId);
|
|
|
|
List<GCubeUser> toReturn = new ArrayList<GCubeUser>();
|
|
|
|
Role askedRole = null;
|
|
|
|
try {
|
|
|
|
askedRole = RoleServiceUtil.getRole(roleId);
|
|
|
|
} catch (PortalException e) {
|
|
|
|
throw new RoleRetrievalFault("Role not existing (I think you better check) roleId="+roleId, e);
|
|
|
|
} catch (SystemException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
2016-02-10 17:59:03 +01:00
|
|
|
_log.debug("Asked for role: "+askedRole.getName());
|
2016-02-08 17:48:05 +01:00
|
|
|
for (GCubeUser u : toIterate.keySet()) {
|
|
|
|
for (GCubeRole role : toIterate.get(u))
|
|
|
|
if (role.getRoleId() == roleId) {
|
|
|
|
toReturn.add(u);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return toReturn;
|
2016-02-05 17:34:44 +01:00
|
|
|
}
|
2016-04-13 18:00:19 +02:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public List<GCubeUser> listUsersByTeam(long teamId) throws UserManagementSystemException, TeamRetrievalFault, UserRetrievalFault {
|
|
|
|
List<GCubeUser> toReturn = new ArrayList<GCubeUser>();
|
|
|
|
Team askedTeam = null;
|
|
|
|
try {
|
|
|
|
askedTeam = TeamLocalServiceUtil.getTeam(teamId);
|
|
|
|
_log.debug("Asked for users of team: "+askedTeam.getName());
|
|
|
|
List<User> users = UserLocalServiceUtil.getTeamUsers(teamId);
|
|
|
|
for (User user : users) {
|
|
|
|
toReturn.add(mapLRUser(user));
|
|
|
|
}
|
|
|
|
} catch (PortalException e) {
|
|
|
|
throw new TeamRetrievalFault("Team not existing (I think you better check) teamId="+teamId, e);
|
|
|
|
} catch (SystemException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
2016-12-29 17:05:36 +01:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public Set<GCubeUser> getUserContactsByGroup(long userId, long scopeGroupId) throws UserManagementSystemException, GroupRetrievalFault, UserRetrievalFault {
|
|
|
|
Set<GCubeUser> users = new HashSet<>();
|
|
|
|
GroupManager gm = new LiferayGroupManager();
|
|
|
|
try {
|
|
|
|
if (gm.isRootVO(scopeGroupId)) {
|
|
|
|
Set<GCubeGroup> userGroups = gm.listGroupsByUserAndSiteGroupId(userId, scopeGroupId);
|
|
|
|
for (GCubeGroup userGroup : userGroups) {
|
|
|
|
if (gm.isVRE(userGroup.getGroupId())) {
|
|
|
|
users.addAll(listUsersByGroup(userGroup.getGroupId()));
|
|
|
|
_log.debug("getUserContactsByGroup added users of group " + userGroup.getGroupId() + " for userid="+userId);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else { //is a VRE
|
|
|
|
users.addAll(listUsersByGroup(scopeGroupId));
|
|
|
|
}
|
|
|
|
} catch (UserManagementSystemException | GroupRetrievalFault | UserRetrievalFault | VirtualGroupNotExistingException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return users;
|
|
|
|
}
|
2016-02-08 17:48:05 +01:00
|
|
|
/*
|
|
|
|
* END LISTING ENTITIES
|
|
|
|
*/
|
2016-03-01 15:25:04 +01:00
|
|
|
|
2017-03-22 10:33:26 +01:00
|
|
|
|
2016-03-01 15:25:04 +01:00
|
|
|
|
2016-02-08 17:48:05 +01:00
|
|
|
/*
|
|
|
|
* MEMBERSHIP REQUESTS
|
|
|
|
*/
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public List<GCubeMembershipRequest> listMembershipRequestsByGroup(long groupId) throws UserManagementSystemException, GroupRetrievalFault, UserRetrievalFault {
|
|
|
|
try {
|
|
|
|
Group g = GroupLocalServiceUtil.getGroup(groupId);
|
2016-02-10 17:59:03 +01:00
|
|
|
_log.debug("Asked for pending users list of group: "+g.getName());
|
2016-02-08 17:48:05 +01:00
|
|
|
} catch (PortalException e1) {
|
2017-01-25 14:05:10 +01:00
|
|
|
throw new GroupRetrievalFault("Group not existing", groupId, e1);
|
2016-02-08 17:48:05 +01:00
|
|
|
} catch (SystemException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
List<GCubeMembershipRequest> toReturn = new ArrayList<GCubeMembershipRequest>();
|
|
|
|
try {
|
|
|
|
int requestesNo = MembershipRequestLocalServiceUtil.getMembershipRequestsCount();
|
|
|
|
for (MembershipRequest req : MembershipRequestLocalServiceUtil.getMembershipRequests(0, requestesNo)) {
|
|
|
|
if (req.getGroupId() == groupId) {
|
|
|
|
toReturn.add(mapLRMembershipRequest(req));
|
|
|
|
}
|
|
|
|
}
|
2016-02-05 17:34:44 +01:00
|
|
|
|
2016-02-08 17:48:05 +01:00
|
|
|
} catch (SystemException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
} catch (PortalException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
2016-02-05 17:34:44 +01:00
|
|
|
@Override
|
2016-02-08 17:48:05 +01:00
|
|
|
public GCubeMembershipRequest requestMembership(long userId, long groupId, String comment) throws UserManagementSystemException, GroupRetrievalFault, UserRetrievalFault {
|
|
|
|
try {
|
|
|
|
MembershipRequest req = MembershipRequestLocalServiceUtil.addMembershipRequest(userId, groupId, comment, new ServiceContext());
|
|
|
|
return mapLRMembershipRequest(req);
|
|
|
|
} catch (PortalException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
} catch (SystemException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
2016-02-05 17:34:44 +01:00
|
|
|
return null;
|
|
|
|
}
|
2016-02-08 17:48:05 +01:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
2016-02-05 17:34:44 +01:00
|
|
|
@Override
|
2016-02-08 17:48:05 +01:00
|
|
|
public GCubeMembershipRequest acceptMembershipRequest(long requestUserId,long groupId, boolean addUserToGroup, String replyUsername, String replyComment) throws UserManagementSystemException, GroupRetrievalFault, UserManagementPortalException {
|
|
|
|
try {
|
|
|
|
GCubeUser replyMan = getUserByUsername(replyUsername);
|
|
|
|
List<GCubeMembershipRequest> requests = listMembershipRequestsByGroup(groupId);
|
|
|
|
for (GCubeMembershipRequest req : requests) {
|
|
|
|
if (req.getRequestingUser().getUserId() == requestUserId) {
|
|
|
|
MembershipRequestLocalServiceUtil.updateStatus(replyMan.getUserId(), req.getMembershipRequestId(), replyComment, 1, addUserToGroup, new ServiceContext());
|
2016-07-04 14:21:01 +02:00
|
|
|
//the method above just adds the user to the VRE, it is needed to add the user to the parent Sites as well (VO and RootVO)
|
|
|
|
assignUserToGroup(GroupLocalServiceUtil.getGroup(groupId).getParentGroupId(), requestUserId);
|
2017-03-22 10:33:26 +01:00
|
|
|
|
2016-02-08 17:48:05 +01:00
|
|
|
return mapLRMembershipRequest(MembershipRequestLocalServiceUtil.getMembershipRequest(req.getMembershipRequestId()));
|
|
|
|
}
|
|
|
|
}
|
2016-03-01 15:25:04 +01:00
|
|
|
|
2016-02-08 17:48:05 +01:00
|
|
|
} catch (UserRetrievalFault e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
2016-02-05 17:34:44 +01:00
|
|
|
return null;
|
|
|
|
}
|
2016-02-08 17:48:05 +01:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
2016-02-05 17:34:44 +01:00
|
|
|
@Override
|
2016-02-08 17:48:05 +01:00
|
|
|
public GCubeMembershipRequest rejectMembershipRequest(long requestUserId, long groupId, String replyUsername, String replyComment) throws UserManagementSystemException, GroupRetrievalFault, UserManagementPortalException {
|
|
|
|
try {
|
|
|
|
GCubeUser replyMan = getUserByUsername(replyUsername);
|
|
|
|
List<GCubeMembershipRequest> requests = listMembershipRequestsByGroup(groupId);
|
|
|
|
for (GCubeMembershipRequest req : requests) {
|
|
|
|
if (req.getRequestingUser().getUserId() == requestUserId) {
|
|
|
|
MembershipRequestLocalServiceUtil.updateStatus(replyMan.getUserId(), req.getMembershipRequestId(), replyComment, 2, false, new ServiceContext());
|
|
|
|
return mapLRMembershipRequest(MembershipRequestLocalServiceUtil.getMembershipRequest(req.getMembershipRequestId()));
|
|
|
|
}
|
|
|
|
}
|
2016-03-01 15:25:04 +01:00
|
|
|
|
2016-02-08 17:48:05 +01:00
|
|
|
} catch (UserRetrievalFault e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return null;
|
2016-02-05 17:34:44 +01:00
|
|
|
}
|
2016-03-08 15:10:06 +01:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public GCubeMembershipRequest getMembershipRequestsById(long membershipRequestId) {
|
|
|
|
GCubeMembershipRequest toReturn = null;
|
|
|
|
try {
|
|
|
|
toReturn = mapLRMembershipRequest(MembershipRequestLocalServiceUtil.getMembershipRequest(membershipRequestId));
|
|
|
|
} catch (PortalException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
} catch (SystemException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public List<GCubeMembershipRequest> getMembershipRequests(long userId, long groupId, MembershipRequestStatus requestStatus) throws UserManagementSystemException, GroupRetrievalFault, UserRetrievalFault {
|
|
|
|
try {
|
|
|
|
Group g = GroupLocalServiceUtil.getGroup(groupId);
|
|
|
|
_log.debug("Asked for pending users list of group: "+g.getName());
|
|
|
|
} catch (PortalException e1) {
|
2017-01-25 14:05:10 +01:00
|
|
|
throw new GroupRetrievalFault("Group not existing", groupId, e1);
|
2016-03-08 15:10:06 +01:00
|
|
|
} catch (SystemException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
List<GCubeMembershipRequest> toReturn = new ArrayList<GCubeMembershipRequest>();
|
|
|
|
try {
|
|
|
|
int statusId = 0;
|
|
|
|
if (requestStatus == MembershipRequestStatus.APPROVED) {
|
|
|
|
statusId = 1;
|
|
|
|
}
|
|
|
|
else if (requestStatus == MembershipRequestStatus.DENIED) {
|
|
|
|
statusId = 2;
|
|
|
|
}
|
|
|
|
for (MembershipRequest req : MembershipRequestLocalServiceUtil.getMembershipRequests(userId, groupId, statusId)) {
|
|
|
|
toReturn.add(mapLRMembershipRequest(req));
|
|
|
|
}
|
|
|
|
} catch (SystemException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
} catch (PortalException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
2016-02-08 17:48:05 +01:00
|
|
|
/*
|
|
|
|
* END MEMBERSHIP REQUESTS
|
|
|
|
*/
|
2016-03-01 15:25:04 +01:00
|
|
|
|
2016-02-08 17:48:05 +01:00
|
|
|
/*
|
|
|
|
* USER TO Sites ASSIGNMENTS
|
|
|
|
*/
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
2016-02-05 17:34:44 +01:00
|
|
|
@Override
|
2016-02-08 17:48:05 +01:00
|
|
|
public void assignUserToGroup(long groupId, long userId) throws UserManagementSystemException, GroupRetrievalFault, UserRetrievalFault, UserManagementPortalException {
|
|
|
|
try {
|
|
|
|
GroupManager gm = new LiferayGroupManager();
|
2016-02-10 18:50:40 +01:00
|
|
|
if (gm.isRootVO(groupId)) {
|
|
|
|
UserLocalServiceUtil.addGroupUser(groupId, userId);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (gm.isVO(groupId)) {
|
|
|
|
long parentGroupId = gm.getGroup(groupId).getParentGroupId();
|
|
|
|
UserLocalServiceUtil.addGroupUser(parentGroupId, userId);
|
|
|
|
UserLocalServiceUtil.addGroupUser(groupId, userId);
|
|
|
|
return;
|
|
|
|
}
|
2016-02-08 17:48:05 +01:00
|
|
|
if (gm.isVRE(groupId)) {
|
2016-02-10 18:50:40 +01:00
|
|
|
long rootGroupId = gm.getGroup(gm.getGroup(groupId).getParentGroupId()).getParentGroupId();
|
|
|
|
UserLocalServiceUtil.addGroupUser(rootGroupId, userId);
|
|
|
|
long parentGroupId = gm.getGroup(groupId).getParentGroupId();
|
|
|
|
UserLocalServiceUtil.addGroupUser(parentGroupId, userId);
|
|
|
|
UserLocalServiceUtil.addGroupUser(groupId, userId);
|
2016-02-08 17:48:05 +01:00
|
|
|
}
|
|
|
|
} catch (SystemException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
2016-02-05 17:34:44 +01:00
|
|
|
}
|
2016-02-08 17:48:05 +01:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
2016-02-05 17:34:44 +01:00
|
|
|
@Override
|
2016-02-08 17:48:05 +01:00
|
|
|
public void dismissUserFromGroup(long groupId, long userId) throws UserManagementSystemException, GroupRetrievalFault, UserRetrievalFault {
|
|
|
|
try {
|
|
|
|
UserLocalServiceUtil.deleteGroupUser(groupId, userId);
|
|
|
|
} catch (SystemException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
2016-02-05 17:34:44 +01:00
|
|
|
|
|
|
|
}
|
2016-02-09 18:53:54 +01:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
2016-02-05 17:34:44 +01:00
|
|
|
@Override
|
2016-02-09 18:53:54 +01:00
|
|
|
public List<GCubeUser> listUnregisteredUsersByGroup(long groupId) throws UserManagementSystemException, GroupRetrievalFault, UserRetrievalFault {
|
|
|
|
List<GCubeUser> toProcess = listUsers();
|
|
|
|
toProcess.removeAll(listUsersByGroup(groupId));
|
|
|
|
return toProcess;
|
2016-03-17 12:20:52 +01:00
|
|
|
}
|
2016-03-21 16:47:44 +01:00
|
|
|
|
2016-03-17 12:20:52 +01:00
|
|
|
@Override
|
|
|
|
public boolean isPasswordChanged(String emailAddress) {
|
|
|
|
_log.debug("Trying to fetch user by email = " + emailAddress);
|
|
|
|
User user;
|
|
|
|
try {
|
2016-03-21 16:47:44 +01:00
|
|
|
|
2016-03-17 12:20:52 +01:00
|
|
|
user = UserLocalServiceUtil.getUserByEmailAddress(ManagementUtils.getCompany().getCompanyId(), emailAddress);
|
2016-03-21 16:47:44 +01:00
|
|
|
|
2016-03-17 12:20:52 +01:00
|
|
|
// date are saved according GMT
|
|
|
|
long creationTime = user.getCreateDate().getTime();
|
2017-03-22 10:33:26 +01:00
|
|
|
|
|
|
|
long changedTime;
|
|
|
|
if(user.getPasswordModifiedDate() != null)
|
|
|
|
changedTime = user.getPasswordModifiedDate().getTime();
|
|
|
|
else
|
|
|
|
return false; // there was no change
|
2016-03-21 16:47:44 +01:00
|
|
|
|
2016-03-17 12:20:52 +01:00
|
|
|
return changedTime > creationTime;
|
|
|
|
} catch (Exception e) {
|
|
|
|
_log.error("Error while retrieving user with mail=" + emailAddress, e);
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
2016-03-21 16:47:44 +01:00
|
|
|
|
2016-03-17 12:20:52 +01:00
|
|
|
@Override
|
|
|
|
public boolean userExistsByEmail(String emailAddress) {
|
|
|
|
try {
|
|
|
|
if(UserLocalServiceUtil.getUserByEmailAddress(ManagementUtils.getCompany().getCompanyId(), emailAddress) != null)
|
|
|
|
return true;
|
|
|
|
} catch (Exception e){
|
|
|
|
_log.error("Error while retrieving user with mail=" + emailAddress, e);
|
|
|
|
}
|
|
|
|
return false;
|
2016-03-21 16:47:44 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String getFullNameFromEmail(String email) {
|
|
|
|
try{
|
|
|
|
User user;
|
|
|
|
if((user = UserLocalServiceUtil.getUserByEmailAddress(ManagementUtils.getCompany().getCompanyId(), email))!= null){
|
|
|
|
return user.getFullName();
|
|
|
|
}
|
|
|
|
}catch(Exception e){
|
|
|
|
|
|
|
|
_log.error("Unable to find user with email " + email);
|
|
|
|
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public void deleteUserByEMail(String email)
|
|
|
|
throws UserManagementSystemException,
|
|
|
|
UserManagementPortalException, PortalException, SystemException {
|
|
|
|
|
|
|
|
User user;
|
|
|
|
if((user = UserLocalServiceUtil.getUserByEmailAddress(ManagementUtils.getCompany().getCompanyId(), email))!= null){
|
|
|
|
|
|
|
|
_log.debug("Deleting user with email " + email);
|
|
|
|
UserLocalServiceUtil.deleteUser(user);
|
|
|
|
_log.debug("Delete user with email " + email);
|
|
|
|
}
|
2016-03-28 16:32:20 +02:00
|
|
|
}
|
2016-04-06 14:43:14 +02:00
|
|
|
@Override
|
|
|
|
public byte[] getUserAvatarBytes(String screenName) {
|
|
|
|
try {
|
|
|
|
User user = UserLocalServiceUtil.getUserByScreenName(ManagementUtils.getCompany().getCompanyId(), screenName);
|
|
|
|
return ImageLocalServiceUtil.getImage(user.getPortraitId()).getTextObj();
|
2016-05-23 17:31:31 +02:00
|
|
|
} catch (Exception e) {
|
2016-04-06 14:43:14 +02:00
|
|
|
_log.debug("Unable to retrieve user's avatar", e);
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public String getUserOpenId(String screenName) {
|
|
|
|
try {
|
|
|
|
User user = UserLocalServiceUtil.getUserByScreenName(ManagementUtils.getCompany().getCompanyId(), screenName);
|
|
|
|
return user.getOpenId();
|
|
|
|
} catch (PortalException e) {
|
|
|
|
_log.debug("Unable to retrieve user's openId", e);
|
|
|
|
} catch (SystemException e) {
|
|
|
|
_log.debug("Unable to retrieve user's openId", e);
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
2016-05-04 16:58:46 +02:00
|
|
|
@Override
|
|
|
|
public boolean updateContactInformation(String screenName,
|
|
|
|
String mySpacesn, String twittersn, String facebooksn,
|
|
|
|
String skypesn, String jabbersn, String aimsn) {
|
|
|
|
|
|
|
|
try{
|
|
|
|
User user = UserLocalServiceUtil.getUserByScreenName(ManagementUtils.getCompany().getCompanyId(), screenName);
|
|
|
|
|
|
|
|
// retrieve the contact
|
|
|
|
Contact contact = user.getContact();
|
|
|
|
|
|
|
|
// set those data
|
|
|
|
contact.setMySpaceSn(mySpacesn);
|
|
|
|
contact.setTwitterSn(twittersn);
|
|
|
|
contact.setFacebookSn(facebooksn);
|
|
|
|
contact.setSkypeSn(skypesn);
|
|
|
|
contact.setJabberSn(jabbersn);
|
|
|
|
contact.setAimSn(aimsn);
|
|
|
|
|
|
|
|
// update contact
|
|
|
|
ContactLocalServiceUtil.updateContact(contact);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}catch(Exception e){
|
|
|
|
_log.error("Error while updating user " + screenName + " contact information");
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
2016-06-28 15:42:20 +02:00
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public Serializable readCustomAttr(long userId, String attributeKey) throws UserRetrievalFault {
|
|
|
|
try {
|
|
|
|
doAsAdmin();
|
|
|
|
User u = UserLocalServiceUtil.getUser(userId);
|
|
|
|
if (u.getExpandoBridge().hasAttribute(attributeKey)) {
|
2016-07-05 14:41:31 +02:00
|
|
|
//_log.debug("User Attribute found: " + attributeKey + " trying read value");
|
2016-06-28 15:42:20 +02:00
|
|
|
return u.getExpandoBridge().getAttribute(attributeKey);
|
|
|
|
} else
|
|
|
|
return null;
|
|
|
|
} catch (PortalException e1) {
|
|
|
|
throw new UserRetrievalFault("User not existing (I think you better check)", e1);
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public void saveCustomAttr(long userId, String attributeKey, Serializable value) throws UserRetrievalFault {
|
|
|
|
try {
|
|
|
|
doAsAdmin();
|
|
|
|
User u = UserLocalServiceUtil.getUser(userId);
|
|
|
|
u.getExpandoBridge().setAttribute(attributeKey, value);
|
|
|
|
} catch (PortalException e1) {
|
|
|
|
throw new UserRetrievalFault("User not existing (I think you better check)", e1);
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
2016-06-28 17:00:26 +02:00
|
|
|
@Override
|
|
|
|
public boolean updateJobTitle(long userId, String theJob) {
|
|
|
|
try {
|
|
|
|
UserLocalServiceUtil.updateJobTitle(userId, theJob);
|
|
|
|
} catch (PortalException | SystemException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
2017-02-08 18:24:06 +01:00
|
|
|
@Override
|
|
|
|
public List<GCubeUser> listUsersByGlobalRole(long roleId) {
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
return null;
|
|
|
|
}
|
2017-02-10 19:23:19 +01:00
|
|
|
@Override
|
|
|
|
public List<Long> getUserIdsByGroup(long groupId) {
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
return null;
|
|
|
|
}
|
2016-02-05 17:34:44 +01:00
|
|
|
}
|