From da3b17c9c17c9f59c3dc65f44413944395a56390 Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Mon, 3 Oct 2016 17:32:39 +0000 Subject: [PATCH] added support for membership type PRIVATE git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/vo-management/usermanagement-core@132508 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../impl/LiferayGroupManager.java | 22 +++++++++++++-- .../usermanagement/model/GCubeGroup.java | 28 +++++++++---------- .../model/GroupMembershipType.java | 7 +++++ 3 files changed, 40 insertions(+), 17 deletions(-) create mode 100644 src/main/java/org/gcube/vomanagement/usermanagement/model/GroupMembershipType.java diff --git a/src/main/java/org/gcube/vomanagement/usermanagement/impl/LiferayGroupManager.java b/src/main/java/org/gcube/vomanagement/usermanagement/impl/LiferayGroupManager.java index e792e96..9ce309d 100644 --- a/src/main/java/org/gcube/vomanagement/usermanagement/impl/LiferayGroupManager.java +++ b/src/main/java/org/gcube/vomanagement/usermanagement/impl/LiferayGroupManager.java @@ -23,6 +23,7 @@ import org.gcube.vomanagement.usermanagement.exception.VirtualGroupNotExistingEx import org.gcube.vomanagement.usermanagement.model.CustomAttributeKeys; import org.gcube.vomanagement.usermanagement.model.GCubeGroup; import org.gcube.vomanagement.usermanagement.model.GCubeRole; +import org.gcube.vomanagement.usermanagement.model.GroupMembershipType; import org.gcube.vomanagement.usermanagement.model.VirtualGroup; import org.gcube.vomanagement.usermanagement.util.ManagementUtils; @@ -59,7 +60,7 @@ public class LiferayGroupManager implements GroupManager { if (g != null) { long logoId = LayoutSetLocalServiceUtil.getLayoutSet(g.getGroupId(), true).getLogoId(); if (isVRE(g.getGroupId())) { - return new GCubeGroup(g.getGroupId(), g.getParentGroupId(), g.getName(), g.getDescription(), g.getFriendlyURL(), logoId, null, g.getType()==GroupConstants.TYPE_SITE_RESTRICTED); + return new GCubeGroup(g.getGroupId(), g.getParentGroupId(), g.getName(), g.getDescription(), g.getFriendlyURL(), logoId, null, getMappedGroupMembershipType(g.getType())); } else if (isVO(g.getGroupId())) { List vres = new ArrayList(); @@ -67,13 +68,13 @@ public class LiferayGroupManager implements GroupManager { for (Group vre : VREs) { vres.add(mapLRGroup(vre)); } - return new GCubeGroup(g.getGroupId(), g.getParentGroupId(), g.getName(), g.getDescription(), g.getFriendlyURL(), logoId, vres, g.getType()==GroupConstants.TYPE_SITE_RESTRICTED); + return new GCubeGroup(g.getGroupId(), g.getParentGroupId(), g.getName(), g.getDescription(), g.getFriendlyURL(), logoId, vres, getMappedGroupMembershipType(g.getType())); } else if (isRootVO(g.getGroupId())) { List vos = new ArrayList(); List children = g.getChildren(true); for (Group vo : children) vos.add(mapLRGroup(vo)); - return new GCubeGroup(g.getGroupId(), -1, g.getName(), g.getDescription(), g.getFriendlyURL(), logoId, vos, g.getType()==GroupConstants.TYPE_SITE_RESTRICTED); + return new GCubeGroup(g.getGroupId(), -1, g.getName(), g.getDescription(), g.getFriendlyURL(), logoId, vos, getMappedGroupMembershipType(g.getType())); } else{ _log.warn("This groupId does not correspond to a VO ora VRE"); return null; @@ -82,6 +83,21 @@ public class LiferayGroupManager implements GroupManager { else return null; } + /** + * + * @param type + * @return the correspondent mapping to the gcube model + */ + private GroupMembershipType getMappedGroupMembershipType(int type) { + switch (type) { + case GroupConstants.TYPE_SITE_RESTRICTED: + return GroupMembershipType.RESTRICTED; + case GroupConstants.TYPE_SITE_OPEN: + return GroupMembershipType.OPEN; + default: + return GroupMembershipType.PRIVATE; + } + } /** * * @param groupName diff --git a/src/main/java/org/gcube/vomanagement/usermanagement/model/GCubeGroup.java b/src/main/java/org/gcube/vomanagement/usermanagement/model/GCubeGroup.java index 0ffaeb9..2a98d85 100644 --- a/src/main/java/org/gcube/vomanagement/usermanagement/model/GCubeGroup.java +++ b/src/main/java/org/gcube/vomanagement/usermanagement/model/GCubeGroup.java @@ -14,7 +14,7 @@ public class GCubeGroup implements Serializable { String friendlyURL; long logoId; List children; - boolean requestBasedGroup; + GroupMembershipType membershipType; public GCubeGroup() { super(); @@ -31,12 +31,12 @@ public class GCubeGroup implements Serializable { this.friendlyURL = friendlyURL; this.logoId = logoId; this.children = children; - this.requestBasedGroup = true; + this.membershipType = GroupMembershipType.RESTRICTED; } public GCubeGroup(long groupId, long parentGroupId, String groupName, String description, String friendlyURL, long logoId, - List children, boolean requestBasedGroup) { + List children, GroupMembershipType membershipType) { super(); this.groupId = groupId; this.parentGroupId = parentGroupId; @@ -45,7 +45,7 @@ public class GCubeGroup implements Serializable { this.friendlyURL = friendlyURL; this.logoId = logoId; this.children = children; - this.requestBasedGroup = requestBasedGroup; + this.membershipType = membershipType; } @@ -126,23 +126,23 @@ public class GCubeGroup implements Serializable { this.children = children; } - public boolean isRequestBasedGroup() { - return requestBasedGroup; + + + public GroupMembershipType getMembershipType() { + return membershipType; } - public void setRequestBasedGroup(boolean requestBasedGroup) { - this.requestBasedGroup = requestBasedGroup; + public void setMembershipType(GroupMembershipType membershipType) { + this.membershipType = membershipType; } @Override public String toString() { - return "GCubeGroup [groupId=" + groupId + ", parentGroupId=" - + parentGroupId + ", groupName=" + groupName + ", description=" - + description + ", friendlyURL=" + friendlyURL + ", logoId=" - + logoId + ", children=" + children + ", requestBasedGroup=" - + requestBasedGroup + "]"; + return "GCubeGroup [groupId=" + groupId + ", parentGroupId=" + parentGroupId + ", groupName=" + groupName + + ", description=" + description + ", friendlyURL=" + friendlyURL + ", logoId=" + logoId + ", children=" + + children + ", membershipType=" + membershipType + "]"; } - + @Override public boolean equals(Object obj) { if (this == obj) diff --git a/src/main/java/org/gcube/vomanagement/usermanagement/model/GroupMembershipType.java b/src/main/java/org/gcube/vomanagement/usermanagement/model/GroupMembershipType.java new file mode 100644 index 0000000..cdf2bbf --- /dev/null +++ b/src/main/java/org/gcube/vomanagement/usermanagement/model/GroupMembershipType.java @@ -0,0 +1,7 @@ +package org.gcube.vomanagement.usermanagement.model; + +public enum GroupMembershipType { + OPEN, + RESTRICTED, + PRIVATE; +}