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.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<GCubeGroup> vres = new ArrayList<GCubeGroup>();
@ -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<GCubeGroup> vos = new ArrayList<GCubeGroup>();
List<Group> 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

View File

@ -14,7 +14,7 @@ public class GCubeGroup implements Serializable {
String friendlyURL;
long logoId;
List<GCubeGroup> 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<GCubeGroup> children, boolean requestBasedGroup) {
List<GCubeGroup> 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)

View File

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