2018-05-18 18:31:46 +02:00
|
|
|
package org.gcube.portlets.widgets.wsexplorer.server.stohub;
|
|
|
|
|
2018-05-21 18:45:16 +02:00
|
|
|
import java.util.Collections;
|
2018-05-18 18:31:46 +02:00
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
|
|
|
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
|
|
|
import org.gcube.common.portal.PortalContext;
|
|
|
|
import org.gcube.common.scope.api.ScopeProvider;
|
|
|
|
import org.gcube.common.storagehub.client.plugins.AbstractPlugin;
|
|
|
|
import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
|
|
|
|
import org.gcube.common.storagehub.client.proxies.WorkspaceManagerClient;
|
2018-05-21 18:45:16 +02:00
|
|
|
import org.gcube.common.storagehub.model.items.FolderItem;
|
2018-05-18 18:31:46 +02:00
|
|
|
import org.gcube.common.storagehub.model.items.Item;
|
|
|
|
|
|
|
|
import com.liferay.portal.kernel.log.Log;
|
|
|
|
import com.liferay.portal.kernel.log.LogFactoryUtil;
|
|
|
|
|
|
|
|
|
|
|
|
public class Whorespace {
|
|
|
|
private static Log _log = LogFactoryUtil.getLog(Whorespace.class);
|
|
|
|
public static final String ACCOUNTING_HL_NODE_NAME = "hl:accounting";
|
|
|
|
|
|
|
|
public static Item getRoot(HttpServletRequest request) {
|
|
|
|
PortalContext pContext = PortalContext.getConfiguration();
|
|
|
|
String userName = pContext.getCurrentUser(request).getUsername();
|
|
|
|
String scope = pContext.getCurrentScope(request);
|
|
|
|
String authorizationToken = pContext.getCurrentUserToken(scope, userName);
|
|
|
|
ScopeProvider.instance.set(scope);
|
|
|
|
SecurityTokenProvider.instance.set(authorizationToken);
|
|
|
|
WorkspaceManagerClient client = AbstractPlugin.workspace().build();
|
|
|
|
Item itemRoot = client.getWorkspace(ACCOUNTING_HL_NODE_NAME);
|
|
|
|
return itemRoot;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static Item getItem(HttpServletRequest request, String itemId) {
|
|
|
|
PortalContext pContext = PortalContext.getConfiguration();
|
|
|
|
String userName = pContext.getCurrentUser(request).getUsername();
|
|
|
|
String scope = pContext.getCurrentScope(request);
|
|
|
|
String authorizationToken = pContext.getCurrentUserToken(scope, userName);
|
|
|
|
ScopeProvider.instance.set(scope);
|
|
|
|
SecurityTokenProvider.instance.set(authorizationToken);
|
|
|
|
ItemManagerClient client = AbstractPlugin.item().build();
|
|
|
|
Item toReturn = client.get(itemId, ACCOUNTING_HL_NODE_NAME);
|
|
|
|
return toReturn;
|
|
|
|
}
|
|
|
|
|
2018-05-21 18:45:16 +02:00
|
|
|
public static List<? extends Item> getParents(HttpServletRequest request, String itemId) {
|
|
|
|
PortalContext pContext = PortalContext.getConfiguration();
|
|
|
|
String userName = pContext.getCurrentUser(request).getUsername();
|
|
|
|
String scope = pContext.getCurrentScope(request);
|
|
|
|
String authorizationToken = pContext.getCurrentUserToken(scope, userName);
|
|
|
|
ScopeProvider.instance.set(scope);
|
|
|
|
SecurityTokenProvider.instance.set(authorizationToken);
|
|
|
|
ItemManagerClient client = AbstractPlugin.item().build();
|
|
|
|
List<? extends Item> toReturn = client.getAnchestors(itemId, ACCOUNTING_HL_NODE_NAME);
|
|
|
|
return toReturn;
|
|
|
|
}
|
|
|
|
|
2018-05-18 18:31:46 +02:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @param request
|
|
|
|
* @return the VRE Folders Id
|
|
|
|
*/
|
|
|
|
public static String getVREFoldersId(HttpServletRequest request) {
|
|
|
|
PortalContext pContext = PortalContext.getConfiguration();
|
|
|
|
String userName = pContext.getCurrentUser(request).getUsername();
|
|
|
|
String scope = pContext.getCurrentScope(request);
|
|
|
|
String authorizationToken = pContext.getCurrentUserToken(scope, userName);
|
|
|
|
ScopeProvider.instance.set(scope);
|
|
|
|
SecurityTokenProvider.instance.set(authorizationToken);
|
|
|
|
String toReturn = "";
|
|
|
|
try {
|
|
|
|
WorkspaceManagerClient wsclient = AbstractPlugin.workspace().build();
|
|
|
|
try {
|
|
|
|
List<? extends Item> list = wsclient.getVreFolders("hl:accounting");
|
|
|
|
toReturn =list.iterator().next().getParentId();
|
|
|
|
} catch (Exception e) {
|
|
|
|
_log.info("This user has no VRE Folders", e);
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
public static int getItemChildrenCount(HttpServletRequest request, String itemId) {
|
|
|
|
PortalContext pContext = PortalContext.getConfiguration();
|
|
|
|
String userName = pContext.getCurrentUser(request).getUsername();
|
|
|
|
String scope = pContext.getCurrentScope(request);
|
|
|
|
String authorizationToken = pContext.getCurrentUserToken(scope, userName);
|
|
|
|
ScopeProvider.instance.set(scope);
|
|
|
|
SecurityTokenProvider.instance.set(authorizationToken);
|
|
|
|
ItemManagerClient client = AbstractPlugin.item().build();
|
|
|
|
return client.childrenCount(itemId);
|
|
|
|
}
|
|
|
|
}
|