added read / write custom attrobute for User

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/vo-management/usermanagement-core@129524 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Massimiliano Assante 2016-06-28 13:42:20 +00:00
parent f90da4f15d
commit 3232afcb6e
4 changed files with 66 additions and 9 deletions

View File

@ -1,5 +1,6 @@
package org.gcube.vomanagement.usermanagement;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
@ -334,29 +335,29 @@ public interface UserManager {
* @param email
* @return true on success, false otherwise
*/
public boolean userExistsByEmail(String email);
boolean userExistsByEmail(String email);
/**
* Returns the user's full name given his email
* @param email
* @return null on failure
*/
public String getFullNameFromEmail(String email);
String getFullNameFromEmail(String email);
/**
* Delete a user given his mail
* @param email
*/
public void deleteUserByEMail(String email) throws UserManagementSystemException, UserManagementPortalException, PortalException, SystemException;
void deleteUserByEMail(String email) throws UserManagementSystemException, UserManagementPortalException, PortalException, SystemException;
/**
* Retrieve user's avatar as bytes
*/
public byte[] getUserAvatarBytes(String screenName);
byte[] getUserAvatarBytes(String screenName);
/**
* Retrieve user's openId field
*/
public String getUserOpenId(String screenName);
String getUserOpenId(String screenName);
/**
* Update screenName user's contact information
@ -369,7 +370,23 @@ public interface UserManager {
* @param aimsn
* @return true on success, false otherwise
*/
public boolean updateContactInformation(String screenName, String mySpacesn,
boolean updateContactInformation(String screenName, String mySpacesn,
String twittersn, String facebooksn, String skypesn,
String jabbersn, String aimsn);
/**
*
* @param attributeKey the name of the attribute you want to read its value
* @return the attributeKey value if existing, null otherwise
* @return
* @throws UserRetrievalFault
*/
Serializable readCustomAttr(long userId, String attributeKey) throws UserRetrievalFault;
/**
*
* @param userId
* @param attributeKey the name of the attribute you want to save
* @param value the value
* @throws UserRetrievalFault
*/
void saveCustomAttr(long userId, String attributeKey, Serializable value) throws UserRetrievalFault;
}

View File

@ -1,5 +1,6 @@
package org.gcube.vomanagement.usermanagement.impl;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -959,4 +960,39 @@ public class LiferayUserManager implements UserManager {
}
}
/**
* {@inheritDoc}
*/
@Override
public Serializable readCustomAttr(long userId, String attributeKey) throws UserRetrievalFault {
try {
doAsAdmin();
User u = UserLocalServiceUtil.getUser(userId);
if (u.getExpandoBridge().hasAttribute(attributeKey)) {
_log.info("User Attribute found: " + attributeKey + " trying read value");
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();
}
}
}

View File

@ -4,17 +4,20 @@ package org.gcube.vomanagement.usermanagement.model;
* @author Massimiliano Assante, CNR-ISTI
* For gCube Portal Bundle (Site) Custom Attributes keys
*
* use LiferayGroupManager#readCustomAttr method to read them
* use LiferayGroupManager#readCustomAttr method to read them or LiferayUserManager#readCustomAttr
*
*/
public enum CustomAttributeKeys {
//Group
MANDATORY("Mandatory"),
IS_EXTERNAL("Isexternal"),
URL("Url"),
POST_NOTIFICATION("Postnotificationviaemail"),
VIRTUAL_GROUP("Virtualgroup"),
GATEWAY_SITE_NAME("Gatewayname"),
GATEWAY_SITE_EMAIL_SENDER("Emailsender");
GATEWAY_SITE_EMAIL_SENDER("Emailsender"),
//User
USER_COMPANY_OR_INSTITUTION("company");
private String name;

View File

@ -15,7 +15,8 @@ public class ManagementUtils {
* logger
*/
private static final Logger _log = LoggerFactory.getLogger(ManagementUtils.class);
/**
/**
*
*/