portlet url built on the fly
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-catalogue/ckan-util-library@164553 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
6d8c9a22bb
commit
574532c7d9
|
@ -33,7 +33,8 @@ import org.apache.solr.client.solrj.impl.HttpSolrServer;
|
|||
import org.apache.solr.client.solrj.response.FacetField;
|
||||
import org.apache.solr.client.solrj.response.FacetField.Count;
|
||||
import org.apache.solr.client.solrj.response.QueryResponse;
|
||||
import org.gcube.datacatalogue.ckanutillibrary.server.utils.UtilMethods;
|
||||
import org.gcube.common.scope.impl.ScopeBean;
|
||||
import org.gcube.datacatalogue.ckanutillibrary.server.utils.CatalogueUtilMethods;
|
||||
import org.gcube.datacatalogue.ckanutillibrary.server.utils.url.EntityContext;
|
||||
import org.gcube.datacatalogue.ckanutillibrary.shared.CKanUserWrapper;
|
||||
import org.gcube.datacatalogue.ckanutillibrary.shared.CkanDatasetRelationship;
|
||||
|
@ -101,6 +102,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
|
||||
private final static String PATH_SET_PRIVATE_DATASET = "/api/3/action/bulk_update_private";
|
||||
private final static String PATH_SET_PUBLIC_DATASET = "/api/3/action/bulk_update_public";
|
||||
private static final String CATALOGUE_TAB_ENDING_URL = "/catalogue";
|
||||
|
||||
// ckan client
|
||||
private CkanClient client;
|
||||
|
@ -169,7 +171,10 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
|
||||
@Override
|
||||
public String getPortletUrl() {
|
||||
return PORTLET_URL_FOR_SCOPE;
|
||||
ScopeBean context = new ScopeBean(CONTEXT);
|
||||
String buildedUrl = PORTLET_URL_FOR_SCOPE.endsWith("/") ? PORTLET_URL_FOR_SCOPE : PORTLET_URL_FOR_SCOPE + "/";
|
||||
buildedUrl += context.name().toLowerCase() + CATALOGUE_TAB_ENDING_URL;
|
||||
return buildedUrl;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -229,7 +234,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
checkArgument(!username.isEmpty());
|
||||
|
||||
// in order to avoid errors, the username is always converted
|
||||
String ckanUsername = UtilMethods.fromUsernameToCKanUsername(username);
|
||||
String ckanUsername = CatalogueUtilMethods.fromUsernameToCKanUsername(username);
|
||||
|
||||
// check in the hashmap first
|
||||
if(apiKeysMap.containsKey(ckanUsername)){
|
||||
|
@ -332,7 +337,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
checkNotNull(username);
|
||||
|
||||
// in order to avoid errors, the username is always converted
|
||||
String ckanUsername = UtilMethods.fromUsernameToCKanUsername(username);
|
||||
String ckanUsername = CatalogueUtilMethods.fromUsernameToCKanUsername(username);
|
||||
|
||||
// list to return
|
||||
List<CkanOrganization> toReturn = new ArrayList<CkanOrganization>();
|
||||
|
@ -373,7 +378,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
checkNotNull(username);
|
||||
|
||||
// in order to avoid errors, the username is always converted
|
||||
String ckanUsername = UtilMethods.fromUsernameToCKanUsername(username);
|
||||
String ckanUsername = CatalogueUtilMethods.fromUsernameToCKanUsername(username);
|
||||
|
||||
// list to return
|
||||
List<CkanGroup> toReturn = new ArrayList<CkanGroup>();
|
||||
|
@ -422,7 +427,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
try{
|
||||
|
||||
// in order to avoid errors, the username is always converted
|
||||
String ckanUsername = UtilMethods.fromUsernameToCKanUsername(username);
|
||||
String ckanUsername = CatalogueUtilMethods.fromUsernameToCKanUsername(username);
|
||||
|
||||
// get the list of organizations in which the user is present
|
||||
List<CkanOrganization> organizationsByUser = getOrganizationsByUser(ckanUsername);
|
||||
|
@ -508,7 +513,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
checkNotNull(username);
|
||||
|
||||
// in order to avoid errors, the username is always converted
|
||||
String ckanUsername = UtilMethods.fromUsernameToCKanUsername(username);
|
||||
String ckanUsername = CatalogueUtilMethods.fromUsernameToCKanUsername(username);
|
||||
|
||||
List<CkanOrganization> orgs = getOrganizationsByUser(ckanUsername);
|
||||
|
||||
|
@ -634,10 +639,10 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
checkNotNull(apiKey);
|
||||
checkArgument(!apiKey.isEmpty());
|
||||
|
||||
if(UtilMethods.resourceExists(resourceBean.getUrl())){
|
||||
if(CatalogueUtilMethods.resourceExists(resourceBean.getUrl())){
|
||||
|
||||
// in order to avoid errors, the username is always converted
|
||||
String ckanUsername = UtilMethods.fromUsernameToCKanUsername(resourceBean.getOwner());
|
||||
String ckanUsername = CatalogueUtilMethods.fromUsernameToCKanUsername(resourceBean.getOwner());
|
||||
|
||||
CkanResource resource = new CkanResource(CKAN_CATALOGUE_URL, resourceBean.getDatasetId());
|
||||
resource.setName(resourceBean.getName());
|
||||
|
@ -752,7 +757,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
|
||||
String nameToUse = name;
|
||||
if(nameToUse == null)
|
||||
nameToUse = UtilMethods.fromProductTitleToName(title);
|
||||
nameToUse = CatalogueUtilMethods.fromProductTitleToName(title);
|
||||
|
||||
logger.debug("Name of the dataset is going to be " + nameToUse + ". Title is going to be " + title);
|
||||
|
||||
|
@ -812,14 +817,6 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
}
|
||||
}
|
||||
|
||||
// sort them
|
||||
// Collections.sort(extras, new Comparator<CkanPair>() {
|
||||
// @Override public int compare(CkanPair b1, CkanPair b2) {
|
||||
// return b1.getKey().compareTo(b2.getKey());
|
||||
// }
|
||||
//
|
||||
// });
|
||||
|
||||
dataset.setExtras(extras);
|
||||
|
||||
// check if we need to add the resources
|
||||
|
@ -1140,7 +1137,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
checkArgument(!organizationName.isEmpty());
|
||||
|
||||
// convert ckan username
|
||||
String ckanUsername = UtilMethods.fromUsernameToCKanUsername(username);
|
||||
String ckanUsername = CatalogueUtilMethods.fromUsernameToCKanUsername(username);
|
||||
|
||||
// check if this role is already present in ckan for this user within the organization
|
||||
String organizationNameToCheck = organizationName.toLowerCase();
|
||||
|
@ -1223,10 +1220,10 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
checkArgument(!groupName.isEmpty());
|
||||
|
||||
// convert ckan username
|
||||
String ckanUsername = UtilMethods.fromUsernameToCKanUsername(username);
|
||||
String ckanUsername = CatalogueUtilMethods.fromUsernameToCKanUsername(username);
|
||||
|
||||
// check if this role is already present in ckan for this user within the group
|
||||
String groupNameToCheck = UtilMethods.fromGroupTitleToName(groupName);
|
||||
String groupNameToCheck = CatalogueUtilMethods.fromGroupTitleToName(groupName);
|
||||
|
||||
try{
|
||||
boolean alreadyPresent = isRoleAlreadySet(ckanUsername, groupNameToCheck, correspondentRoleToCheck, true);
|
||||
|
@ -1274,7 +1271,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
checkArgument(!username.isEmpty());
|
||||
|
||||
// in order to avoid errors, the username is always converted
|
||||
String ckanUsername = UtilMethods.fromUsernameToCKanUsername(username);
|
||||
String ckanUsername = CatalogueUtilMethods.fromUsernameToCKanUsername(username);
|
||||
try{
|
||||
return client.getUser(ckanUsername).isSysadmin();
|
||||
}catch(Exception e){
|
||||
|
@ -1460,7 +1457,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
|
||||
logger.debug("Request for creating group with name " + nameOrId + " title " + title + " and description " + description);
|
||||
|
||||
String name = UtilMethods.fromGroupTitleToName(nameOrId);
|
||||
String name = CatalogueUtilMethods.fromGroupTitleToName(nameOrId);
|
||||
if((toCreate = groupExists(name, client))!= null)
|
||||
return toCreate;
|
||||
else{
|
||||
|
@ -1562,7 +1559,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
checkNotNull(apiKey);
|
||||
checkArgument(!apiKey.isEmpty());
|
||||
|
||||
String groupNameToCheck = UtilMethods.fromGroupTitleToName(groupNameOrId);
|
||||
String groupNameToCheck = CatalogueUtilMethods.fromGroupTitleToName(groupNameOrId);
|
||||
|
||||
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build();){
|
||||
|
||||
|
@ -1674,17 +1671,6 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
CkanDataset dataset = client.getDataset(datasetNameOrId);
|
||||
List<CkanGroup> currentGroups = dataset.getGroups();
|
||||
|
||||
// build the json array for the "groups" field.. each object looks like
|
||||
// {
|
||||
//
|
||||
// "display_name": "Fishery activity",
|
||||
// "description": "",
|
||||
// "image_display_url": "",
|
||||
// "title": "Fishery activity",
|
||||
// "id": "20b8d23c-d2dd-4613-9e1e-856311862e87",
|
||||
// "name": "fishery-activity"
|
||||
//
|
||||
// }
|
||||
|
||||
// get the id of the group to be removed
|
||||
String groupId = client.getGroup(groupNameOrId).getId();
|
||||
|
@ -1762,7 +1748,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
checkNotNull(groupName);
|
||||
checkArgument(!groupName.isEmpty());
|
||||
Map<RolesCkanGroupOrOrg, List<String>> capacityAndUsers = null;
|
||||
String groupNameToCheck = UtilMethods.fromGroupTitleToName(groupName);
|
||||
String groupNameToCheck = CatalogueUtilMethods.fromGroupTitleToName(groupName);
|
||||
|
||||
CkanGroup group = client.getGroup(groupNameToCheck);
|
||||
|
||||
|
@ -1791,7 +1777,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
|
||||
String toReturn = null;
|
||||
|
||||
String usernameCkan = UtilMethods.fromUsernameToCKanUsername(username);
|
||||
String usernameCkan = CatalogueUtilMethods.fromUsernameToCKanUsername(username);
|
||||
|
||||
try{
|
||||
|
||||
|
@ -1816,7 +1802,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
|
||||
String toReturn = null;
|
||||
|
||||
String usernameCkan = UtilMethods.fromUsernameToCKanUsername(username);
|
||||
String usernameCkan = CatalogueUtilMethods.fromUsernameToCKanUsername(username);
|
||||
|
||||
try{
|
||||
|
||||
|
@ -2692,7 +2678,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
|
||||
try{
|
||||
|
||||
String ckanUsername = UtilMethods.fromUsernameToCKanUsername(username);
|
||||
String ckanUsername = CatalogueUtilMethods.fromUsernameToCKanUsername(username);
|
||||
Map<CkanGroup, RolesCkanGroupOrOrg> partialResult = getGroupsByUserFromDB(ckanUsername);
|
||||
|
||||
Set<Entry<CkanGroup, RolesCkanGroupOrOrg>> set = partialResult.entrySet();
|
||||
|
@ -2724,7 +2710,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
|
||||
try{
|
||||
|
||||
String ckanUsername = UtilMethods.fromUsernameToCKanUsername(username);
|
||||
String ckanUsername = CatalogueUtilMethods.fromUsernameToCKanUsername(username);
|
||||
Map<CkanOrganization, RolesCkanGroupOrOrg> partialResult = getOrganizationsByUserFromDB(ckanUsername);
|
||||
|
||||
Set<Entry<CkanOrganization, RolesCkanGroupOrOrg>> set = partialResult.entrySet();
|
||||
|
@ -2833,7 +2819,7 @@ public class DataCatalogueImpl implements DataCatalogue{
|
|||
|
||||
@Override
|
||||
public CkanGroup getGroupByName(String name) {
|
||||
String ckanName = UtilMethods.fromGroupTitleToName(name);
|
||||
String ckanName = CatalogueUtilMethods.fromGroupTitleToName(name);
|
||||
try{
|
||||
return client.getGroup(ckanName);
|
||||
}catch(Exception e){
|
||||
|
|
|
@ -3,6 +3,7 @@ package org.gcube.datacatalogue.ckanutillibrary.server.utils;
|
|||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
|
||||
import org.gcube.common.scope.impl.ScopeBean;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -10,12 +11,27 @@ import org.slf4j.LoggerFactory;
|
|||
* Some utility methods used within the library.
|
||||
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
||||
*/
|
||||
public class UtilMethods {
|
||||
public class CatalogueUtilMethods {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(UtilMethods.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(CatalogueUtilMethods.class);
|
||||
private final static String HTTPS = "https";
|
||||
private final static String HTTP = "http";
|
||||
|
||||
/**
|
||||
* Maps the scope name to the ckan organization name
|
||||
* @return
|
||||
*/
|
||||
public static String getOrganizationNameFromScope(String scope){
|
||||
|
||||
if(scope == null || scope.isEmpty())
|
||||
throw new IllegalArgumentException("scope null");
|
||||
|
||||
ScopeBean scopeBean = new ScopeBean(scope);
|
||||
return scopeBean.name().toLowerCase().replace(" ", "_").replace("-", "_");
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ckan username has _ instead of . (that is, costantino.perciante -> costantino_perciante)
|
||||
* @param owner
|
Loading…
Reference in New Issue