diff --git a/src/main/java/org/gcube/vomanagement/usermanagement/impl/ws/LiferayWSGroupManager.java b/src/main/java/org/gcube/vomanagement/usermanagement/impl/ws/LiferayWSGroupManager.java index 4b5c14a..587c8bc 100644 --- a/src/main/java/org/gcube/vomanagement/usermanagement/impl/ws/LiferayWSGroupManager.java +++ b/src/main/java/org/gcube/vomanagement/usermanagement/impl/ws/LiferayWSGroupManager.java @@ -652,7 +652,6 @@ public class LiferayWSGroupManager implements GroupManager { // real gateways have no children as well for (int i = 0; i < idsCandidateGateways.size(); i++) { - List children = getChildren(idsCandidateGateways.get(i)); String friendlyUrl = (String) ((JSONObject)candidateGateways.get(i)).get("friendlyURL"); // check if it is not a group created by Liferay @@ -661,6 +660,7 @@ public class LiferayWSGroupManager implements GroupManager { if(defaultGroup) continue; + List children = getChildren(idsCandidateGateways.get(i)); if(children == null || children.isEmpty()) gateways.add(mapLRGroup(((JSONObject)candidateGateways.get(i)).toJSONString())); } diff --git a/src/main/java/org/gcube/vomanagement/usermanagement/impl/ws/LiferayWSUserManager.java b/src/main/java/org/gcube/vomanagement/usermanagement/impl/ws/LiferayWSUserManager.java index 4f6197e..9bef28c 100644 --- a/src/main/java/org/gcube/vomanagement/usermanagement/impl/ws/LiferayWSUserManager.java +++ b/src/main/java/org/gcube/vomanagement/usermanagement/impl/ws/LiferayWSUserManager.java @@ -62,6 +62,7 @@ public class LiferayWSUserManager implements UserManager{ private static final String GET_USER_BY_USERNAME = "/user/get-user-by-screen-name/company-id/$COMPANY_ID/screen-name/$USER_ID"; private static final String GET_USERS_BY_GROUP = "/user/get-group-users/group-id/$GROUP_ID"; private static final String GET_USER_CUSTOM_FIELD_BY_KEY = "/expandovalue/get-json-data/company-id/$COMPANY_ID/class-name/com.liferay.portal.model.User/table-name/CUSTOM_FIELDS/column-name/$CUSTOM_FIELD_KEY/class-pk/$USER_ID"; + //private static final String UPDATE_USER_CUSTOM_FIELD_BY_KEY = "/expandovalue/add-value/company-id/$COMPANY_ID/class-name/com.liferay.portal.model.User/table-name/CUSTOM_FIELDS/column-name/$CUSTOM_FIELD_KEY/class-pk/$USER_ID/data/$VALUE"; private static final String GET_CONTACT_BY_USER_ID = "/contact/get-contact/contact-id/$CONTACT_ID"; // logger @@ -148,6 +149,7 @@ public class LiferayWSUserManager implements UserManager{ } + /** * Maps the JSON user to the GCubeUser.class object * @param json @@ -185,7 +187,7 @@ public class LiferayWSUserManager implements UserManager{ (String)userJSON.get("firstName"), (String)userJSON.get("middleName"), (String)userJSON.get("lastName"), - (String)userJSON.get("fullName"), + buildFullName(userJSON), (long)userJSON.get("createDate"), null, // skip for now TODO getUserAvatarAbsoluteURL(u) (boolean)contactJSON.get("male"), @@ -199,6 +201,23 @@ public class LiferayWSUserManager implements UserManager{ return null; } + /** + * From the json representing the user builds the fullname (which is missing, so firstname, lastname and middlename will be used) + * @param userJSON + * @return String representing the fullname + */ + private String buildFullName(JSONObject userJSON) { + String first = (String)userJSON.get("firstName"); + String middle = (String)userJSON.get("middleName"); + String last = (String)userJSON.get("lastName"); + String fullname = + (first == null | first.isEmpty() ? "" : first + " ") + + (middle == null | middle.isEmpty() ? "" : middle + " ") + + (last == null | last.isEmpty() ? "" : last + " "); + logger.info("Built fullname is " + fullname); + return fullname; + } + /** * Given the contactId value, retrieves the json object releted to this information * @param contactId @@ -555,7 +574,6 @@ public class LiferayWSUserManager implements UserManager{ public void saveCustomAttr(long userId, String attributeKey, Serializable value) throws UserRetrievalFault { // TODO Auto-generated method stub - } } diff --git a/src/test/java/org/gcube/vomanagement/usermanagement/test/LiferayWSUserTest.java b/src/test/java/org/gcube/vomanagement/usermanagement/test/LiferayWSUserTest.java index 49c1bdb..410f858 100644 --- a/src/test/java/org/gcube/vomanagement/usermanagement/test/LiferayWSUserTest.java +++ b/src/test/java/org/gcube/vomanagement/usermanagement/test/LiferayWSUserTest.java @@ -7,6 +7,7 @@ import org.gcube.vomanagement.usermanagement.exception.UserManagementSystemExcep import org.gcube.vomanagement.usermanagement.exception.UserRetrievalFault; import org.gcube.vomanagement.usermanagement.impl.ws.LiferayWSUserManager; import org.gcube.vomanagement.usermanagement.model.GCubeUser; +import org.junit.Before; import org.slf4j.LoggerFactory; @@ -19,13 +20,13 @@ public class LiferayWSUserTest{ private static final org.slf4j.Logger logger = LoggerFactory.getLogger(LiferayWSUserTest.class); private UserManager userManager = null; - private String user = ""; - private String password = ""; // Put a valid password here - private String host = ""; - private String schema = ""; - private int port = -1; + private String user = "jsonws.user@d4science.org"; + private String password = "gcuberandom321"; // Put a valid password here + private String host = "dev2.d4science.org"; + private String schema = "https"; + private int port = 443; - //@Before + @Before public void init() throws Exception{ logger.info("Init method, building LiferayWSUserManager");