diff --git a/src/main/java/org/gcube/vomanagement/usermanagement/UserManager.java b/src/main/java/org/gcube/vomanagement/usermanagement/UserManager.java index 62c5be7..008c48e 100644 --- a/src/main/java/org/gcube/vomanagement/usermanagement/UserManager.java +++ b/src/main/java/org/gcube/vomanagement/usermanagement/UserManager.java @@ -13,8 +13,6 @@ import org.gcube.vomanagement.usermanagement.model.GCubeRole; import org.gcube.vomanagement.usermanagement.model.GCubeUser; import org.gcube.vomanagement.usermanagement.model.MembershipRequestStatus; -import com.liferay.portal.model.MembershipRequest; - /** * @@ -44,7 +42,7 @@ import com.liferay.portal.model.MembershipRequest; * @throws UserManagementSystemException * @throws UserRetrievalFault */ - GCubeUser getUserByUsername(String username) throws UserManagementSystemException, UserRetrievalFault ; + GCubeUser getUserByUsername(String username) throws UserManagementSystemException, UserRetrievalFault; /** * * @param username the email of the user you want to get @@ -53,6 +51,14 @@ import com.liferay.portal.model.MembershipRequest; * @throws UserRetrievalFault */ GCubeUser getUserByEmail(String email) throws UserManagementSystemException, UserRetrievalFault; + /** + * + * @param userId the LR UserId + * @return the instance of the user + * @throws UserManagementSystemException + * @throws UserRetrievalFault + */ + GCubeUser getUserById(long userId) throws UserManagementSystemException, UserRetrievalFault; /** * * @param username the LR screenname @@ -88,13 +94,27 @@ import com.liferay.portal.model.MembershipRequest; /** * * @param groupId the LR groupId - * @return the list of {@link MembershipRequest} with their status and users given the LR GroupId (status can be requested, approved or rejected, @see {@link MembershipRequestStatus} + * @return the list of {@link GCubeMembershipRequest} with their status and users given the LR GroupId (status can be requested, approved or rejected, @see {@link MembershipRequestStatus} * @throws UserManagementSystemException * @throws GroupRetrievalFault * @throws UserRetrievalFault */ List listMembershipRequestsByGroup(long groupId) throws UserManagementSystemException, GroupRetrievalFault, UserRetrievalFault; /** + * + * @param requestId + * @return an istance of {@link GCubeMembershipRequest} + */ + GCubeMembershipRequest getMembershipRequestsById(long membershipRequestId); + /** + * + * @param userId the LR userid + * @param groupId the LR groupId the + * @param status an istance of {@link MembershipRequestStatus} + * @return the list of {@link GCubeMembershipRequest} with their status and users given the LR GroupId and userId (status can be requested, approved or rejected, @see {@link MembershipRequestStatus} + */ + List getMembershipRequests(long userId, long groupId, MembershipRequestStatus status) throws UserManagementSystemException, GroupRetrievalFault, UserRetrievalFault; + /** * request the membership to a restricted Site, no further actions are performed (no emails are sent, nor notifications) * @param userId the LR userid * @param groupId the LR groupId the @@ -103,7 +123,7 @@ import com.liferay.portal.model.MembershipRequest; * @throws GroupRetrievalFault * @throws UserRetrievalFault */ - GCubeMembershipRequest requestMembership(long userId, long groupId, String comment) throws UserManagementSystemException, GroupRetrievalFault, UserRetrievalFault; + GCubeMembershipRequest requestMembership(long userId, long groupId, String comment) throws UserManagementSystemException, GroupRetrievalFault, UserRetrievalFault; /** * accept a membership request and optionally add the user to the group * @param requestUserId the LR userid of the request diff --git a/src/main/java/org/gcube/vomanagement/usermanagement/exception/RoleRetrievalFault.java b/src/main/java/org/gcube/vomanagement/usermanagement/exception/RoleRetrievalFault.java index 6b514af..1c9d12d 100644 --- a/src/main/java/org/gcube/vomanagement/usermanagement/exception/RoleRetrievalFault.java +++ b/src/main/java/org/gcube/vomanagement/usermanagement/exception/RoleRetrievalFault.java @@ -9,7 +9,9 @@ public class RoleRetrievalFault extends Exception{ private static final long serialVersionUID = 2824756378739545315L; - + public RoleRetrievalFault(String errorMsg) { + System.out.println(errorMsg); + } /** * */ diff --git a/src/main/java/org/gcube/vomanagement/usermanagement/impl/LiferayUserManager.java b/src/main/java/org/gcube/vomanagement/usermanagement/impl/LiferayUserManager.java index 94fc1d6..5385346 100644 --- a/src/main/java/org/gcube/vomanagement/usermanagement/impl/LiferayUserManager.java +++ b/src/main/java/org/gcube/vomanagement/usermanagement/impl/LiferayUserManager.java @@ -1,6 +1,5 @@ package org.gcube.vomanagement.usermanagement.impl; -import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -201,8 +200,7 @@ public class LiferayUserManager implements UserManager { reminderAnswer = "Unknown answer"; UserLocalServiceUtil.updateReminderQuery(added.getUserId(), reminderQuestion, reminderAnswer); _log.debug("User " + lastName + " has agreed to ToU"); - _log.debug("User " + lastName + " updatePasswordReset false"); - _log.debug("User " + lastName + " updateReminderQuery false"); + _log.debug("User " + lastName + " updatePasswordReset & updateReminderQuery"); return mapLRUser(added); } catch (SystemException e) { e.printStackTrace(); @@ -229,6 +227,25 @@ public class LiferayUserManager implements UserManager { } return toReturn; } + /** + * {@inheritDoc} + */ + @Override + 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) { + throw new UserRetrievalFault("User not existing", e); + } catch (SystemException e) { + throw new UserManagementSystemException(e.getMessage(), e); + } + return toReturn; + } + /** * {@inheritDoc} */ @@ -466,6 +483,53 @@ public class LiferayUserManager implements UserManager { } return null; } + /** + * {@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 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) { + throw new GroupRetrievalFault("Group not existing", e1); + } catch (SystemException e) { + e.printStackTrace(); + } + List toReturn = new ArrayList(); + 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; + } /* * END MEMBERSHIP REQUESTS */ @@ -526,5 +590,5 @@ public class LiferayUserManager implements UserManager { List toProcess = listUsers(); toProcess.removeAll(listUsersByGroup(groupId)); return toProcess; - } + } } diff --git a/src/main/java/org/gcube/vomanagement/usermanagement/model/GCubeRole.java b/src/main/java/org/gcube/vomanagement/usermanagement/model/GCubeRole.java index f0cf6ba..a36eb6a 100644 --- a/src/main/java/org/gcube/vomanagement/usermanagement/model/GCubeRole.java +++ b/src/main/java/org/gcube/vomanagement/usermanagement/model/GCubeRole.java @@ -4,9 +4,15 @@ import java.io.Serializable; @SuppressWarnings("serial") public class GCubeRole implements Serializable { - long roleId; - String roleName; - String description; + private long roleId; + private String roleName; + private String description; + + public final static String VRE_MANAGER_LABEL = "VRE-Manager"; + public final static String VRE_DESIGNER_LABEL = "VRE-Designer"; + public final static String VO_ADMIN_LABEL = "VRE-Designer"; + public final static String INFRA_MANAGER_LABEL = "Infrastructure-Manager"; + public final static String DATA_MANAGER_LABEL = "Data-Manager"; public GCubeRole(){