diff --git a/src/main/java/org/gcube/portlets/user/accountingdashboard/server/accounting/PortalContextTreeProvider.java b/src/main/java/org/gcube/portlets/user/accountingdashboard/server/accounting/PortalContextTreeProvider.java index 1a58192..7f0e9d7 100644 --- a/src/main/java/org/gcube/portlets/user/accountingdashboard/server/accounting/PortalContextTreeProvider.java +++ b/src/main/java/org/gcube/portlets/user/accountingdashboard/server/accounting/PortalContextTreeProvider.java @@ -20,6 +20,8 @@ import org.gcube.vomanagement.usermanagement.impl.LiferayGroupManager; import org.gcube.vomanagement.usermanagement.model.GCubeGroup; import org.gcube.vomanagement.usermanagement.model.GCubeUser; import org.gcube.vomanagement.usermanagement.model.VirtualGroup; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; @@ -28,60 +30,34 @@ import com.liferay.portal.model.VirtualHost; import com.liferay.portal.service.LayoutSetLocalServiceUtil; import com.liferay.portal.service.VirtualHostLocalServiceUtil; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.extern.slf4j.Slf4j; - -@Slf4j public class PortalContextTreeProvider implements ContextTreeProvider { private static GroupManager groupsManager; - @AllArgsConstructor - @Getter - private class VRECategory{ - private long categoryID; - private String name; - private String description; - } - - @AllArgsConstructor - @Getter - private class VRE implements Comparable{ - private String name; - private String description; - private long id; - private String url; - private String scope; - - @Override - public int compareTo(VRE vre) { - return this.getName().compareTo(vre.getName()); - } - } - - + private static Logger log = LoggerFactory.getLogger(PortalContextTreeProvider.class); + + static { groupsManager = new LiferayGroupManager(); } @Override public ScopeDescriptor getTree(Object context) throws Exception { - if(context == null) throw new Exception("Unable to get tree, Request is null."); - if(!(context instanceof HttpServletRequest)) throw new - Exception("Invalid request object : "+context); - HttpServletRequest request=(HttpServletRequest) context; + if(context == null) throw new Exception("Unable to get tree, Request is null."); + if(!(context instanceof HttpServletRequest)) throw new + Exception("Invalid request object : "+context); + HttpServletRequest request=(HttpServletRequest) context; // PARSE TREE - LinkedHashMap> gatewayTree=getPortalSitesMappedToVRE(request); - - LinkedList rootChildren=new LinkedList<>(); + LinkedHashMap> gatewayTree=getPortalSitesMappedToVRE(request); + + LinkedList rootChildren=new LinkedList<>(); for(Entry> entry:gatewayTree.entrySet()) { ScopeDescriptor rootChild=new ScopeDescriptor(entry.getKey().name, entry.getKey().categoryID+""); for(VRE vre:entry.getValue()) rootChild.getChildren().add(new ScopeDescriptor(vre.name, vre.scope)); } - + Group rootGroup=getSiteFromServletRequest(request); ScopeDescriptor root=new ScopeDescriptor(rootGroup.getDescriptiveName(),rootGroup.getGroupId()+""); root.setChildren(rootChildren); @@ -90,17 +66,17 @@ public class PortalContextTreeProvider implements ContextTreeProvider { return root; } - private ScopeDescriptor asScopeDescriptor(GCubeGroup group) - throws UserManagementSystemException, GroupRetrievalFault { - ScopeDescriptor toReturn = new ScopeDescriptor(group.getGroupName(), - groupsManager.getInfrastructureScope(group.getGroupId())); - if (group.getChildren() != null && !group.getChildren().isEmpty()) { - for (GCubeGroup child : group.getChildren()) { - toReturn.getChildren().add(asScopeDescriptor(child)); - } - } - return toReturn; - } +// private ScopeDescriptor asScopeDescriptor(GCubeGroup group) +// throws UserManagementSystemException, GroupRetrievalFault { +// ScopeDescriptor toReturn = new ScopeDescriptor(group.getGroupName(), +// groupsManager.getInfrastructureScope(group.getGroupId())); +// if (group.getChildren() != null && !group.getChildren().isEmpty()) { +// for (GCubeGroup child : group.getChildren()) { +// toReturn.getChildren().add(asScopeDescriptor(child)); +// } +// } +// return toReturn; +// } @@ -158,21 +134,21 @@ public class PortalContextTreeProvider implements ContextTreeProvider { for (VRECategory vre : toReturn.keySet()) { if (vre.getName().compareTo(vreGroup.getName())==0) { ArrayList toUpdate = toReturn.get(vre); -// UserBelonging belongs = UserBelonging.NOT_BELONGING; -// VRE toAdd = new VRE(vreID,vreName, vreDescription, vreLogoURL, groupName, friendlyURL, belongs, getVREMembershipType(vreSite.getMembershipType())); + // UserBelonging belongs = UserBelonging.NOT_BELONGING; + // VRE toAdd = new VRE(vreID,vreName, vreDescription, vreLogoURL, groupName, friendlyURL, belongs, getVREMembershipType(vreSite.getMembershipType())); VRE toAdd= new VRE(vreName,vreDescription,vreID,friendlyURL,infraScope); -// if (GroupLocalServiceUtil.getGroup(vreID).getPublicLayoutsPageCount() > 0) { -// String publicURL = PREFIX_PUBLIC_URL+vreSite.getFriendlyURL(); -// toAdd.setPublicURL(publicURL); -// } -// if (currUser != null) { -// //check if the user belongs to it -// if (currUserGroups.contains(vreSite)) { -// toAdd.setUserBelonging(UserBelonging.BELONGING); -// } -// else if (checkPending(currUser.getUsername(), vreSite.getGroupId())) -// toAdd.setUserBelonging(UserBelonging.PENDING); -// } + // if (GroupLocalServiceUtil.getGroup(vreID).getPublicLayoutsPageCount() > 0) { + // String publicURL = PREFIX_PUBLIC_URL+vreSite.getFriendlyURL(); + // toAdd.setPublicURL(publicURL); + // } + // if (currUser != null) { + // //check if the user belongs to it + // if (currUserGroups.contains(vreSite)) { + // toAdd.setUserBelonging(UserBelonging.BELONGING); + // } + // else if (checkPending(currUser.getUsername(), vreSite.getGroupId())) + // toAdd.setUserBelonging(UserBelonging.PENDING); + // } toUpdate.add(toAdd); } } @@ -212,4 +188,71 @@ public class PortalContextTreeProvider implements ContextTreeProvider { } return null; } + + + + + private class VRECategory{ + private long categoryID; + private String name; + private String description; + public VRECategory(long categoryID, String name, String description) { + super(); + this.categoryID = categoryID; + this.name = name; + this.description = description; + } + + public long getCategoryID() { + return categoryID; + } + public String getDescription() { + return description; + } + public String getName() { + return name; + } + } + + + private class VRE implements Comparable{ + private String name; + private String description; + private long id; + private String url; + private String scope; + + + public VRE(String name, String description, long id, String url, String scope) { + super(); + this.name = name; + this.description = description; + this.id = id; + this.url = url; + this.scope = scope; + } + + public String getDescription() { + return description; + } + + public long getId() { + return id; + } + public String getName() { + return name; + } + public String getScope() { + return scope; + } + public String getUrl() { + return url; + } + + @Override + public int compareTo(VRE vre) { + return this.getName().compareTo(vre.getName()); + } + } + }