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
This commit is contained in:
Massimiliano Assante 2016-10-03 17:32:39 +00:00
parent 00b8826a1c
commit da3b17c9c1
3 changed files with 40 additions and 17 deletions

View File

@ -23,6 +23,7 @@ import org.gcube.vomanagement.usermanagement.exception.VirtualGroupNotExistingEx
import org.gcube.vomanagement.usermanagement.model.CustomAttributeKeys; import org.gcube.vomanagement.usermanagement.model.CustomAttributeKeys;
import org.gcube.vomanagement.usermanagement.model.GCubeGroup; import org.gcube.vomanagement.usermanagement.model.GCubeGroup;
import org.gcube.vomanagement.usermanagement.model.GCubeRole; 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.model.VirtualGroup;
import org.gcube.vomanagement.usermanagement.util.ManagementUtils; import org.gcube.vomanagement.usermanagement.util.ManagementUtils;
@ -59,7 +60,7 @@ public class LiferayGroupManager implements GroupManager {
if (g != null) { if (g != null) {
long logoId = LayoutSetLocalServiceUtil.getLayoutSet(g.getGroupId(), true).getLogoId(); long logoId = LayoutSetLocalServiceUtil.getLayoutSet(g.getGroupId(), true).getLogoId();
if (isVRE(g.getGroupId())) { 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())) { else if (isVO(g.getGroupId())) {
List<GCubeGroup> vres = new ArrayList<GCubeGroup>(); List<GCubeGroup> vres = new ArrayList<GCubeGroup>();
@ -67,13 +68,13 @@ public class LiferayGroupManager implements GroupManager {
for (Group vre : VREs) { for (Group vre : VREs) {
vres.add(mapLRGroup(vre)); 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())) { } else if (isRootVO(g.getGroupId())) {
List<GCubeGroup> vos = new ArrayList<GCubeGroup>(); List<GCubeGroup> vos = new ArrayList<GCubeGroup>();
List<Group> children = g.getChildren(true); List<Group> children = g.getChildren(true);
for (Group vo : children) for (Group vo : children)
vos.add(mapLRGroup(vo)); 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{ } else{
_log.warn("This groupId does not correspond to a VO ora VRE"); _log.warn("This groupId does not correspond to a VO ora VRE");
return null; return null;
@ -82,6 +83,21 @@ public class LiferayGroupManager implements GroupManager {
else else
return null; 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 * @param groupName

View File

@ -14,7 +14,7 @@ public class GCubeGroup implements Serializable {
String friendlyURL; String friendlyURL;
long logoId; long logoId;
List<GCubeGroup> children; List<GCubeGroup> children;
boolean requestBasedGroup; GroupMembershipType membershipType;
public GCubeGroup() { public GCubeGroup() {
super(); super();
@ -31,12 +31,12 @@ public class GCubeGroup implements Serializable {
this.friendlyURL = friendlyURL; this.friendlyURL = friendlyURL;
this.logoId = logoId; this.logoId = logoId;
this.children = children; this.children = children;
this.requestBasedGroup = true; this.membershipType = GroupMembershipType.RESTRICTED;
} }
public GCubeGroup(long groupId, long parentGroupId, String groupName, public GCubeGroup(long groupId, long parentGroupId, String groupName,
String description, String friendlyURL, long logoId, String description, String friendlyURL, long logoId,
List<GCubeGroup> children, boolean requestBasedGroup) { List<GCubeGroup> children, GroupMembershipType membershipType) {
super(); super();
this.groupId = groupId; this.groupId = groupId;
this.parentGroupId = parentGroupId; this.parentGroupId = parentGroupId;
@ -45,7 +45,7 @@ public class GCubeGroup implements Serializable {
this.friendlyURL = friendlyURL; this.friendlyURL = friendlyURL;
this.logoId = logoId; this.logoId = logoId;
this.children = children; this.children = children;
this.requestBasedGroup = requestBasedGroup; this.membershipType = membershipType;
} }
@ -126,23 +126,23 @@ public class GCubeGroup implements Serializable {
this.children = children; this.children = children;
} }
public boolean isRequestBasedGroup() {
return requestBasedGroup;
public GroupMembershipType getMembershipType() {
return membershipType;
} }
public void setRequestBasedGroup(boolean requestBasedGroup) { public void setMembershipType(GroupMembershipType membershipType) {
this.requestBasedGroup = requestBasedGroup; this.membershipType = membershipType;
} }
@Override @Override
public String toString() { public String toString() {
return "GCubeGroup [groupId=" + groupId + ", parentGroupId=" return "GCubeGroup [groupId=" + groupId + ", parentGroupId=" + parentGroupId + ", groupName=" + groupName
+ parentGroupId + ", groupName=" + groupName + ", description=" + ", description=" + description + ", friendlyURL=" + friendlyURL + ", logoId=" + logoId + ", children="
+ description + ", friendlyURL=" + friendlyURL + ", logoId=" + children + ", membershipType=" + membershipType + "]";
+ logoId + ", children=" + children + ", requestBasedGroup="
+ requestBasedGroup + "]";
} }
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object obj) {
if (this == obj) if (this == obj)

View File

@ -0,0 +1,7 @@
package org.gcube.vomanagement.usermanagement.model;
public enum GroupMembershipType {
OPEN,
RESTRICTED,
PRIVATE;
}