added methods to convert to and from ckan roles

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-catalogue/ckan-util-library@134314 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Costantino Perciante 2016-11-17 13:03:33 +00:00
parent 0212aa0bcd
commit 2996d99339
3 changed files with 36 additions and 10 deletions

View File

@ -335,8 +335,8 @@ public class DataCatalogueImpl implements DataCatalogue{
// list of roles
List<RolesCkanGroupOrOrg> rolesIntoOrg = new ArrayList<RolesCkanGroupOrOrg>();
if(rolesToMatch.contains(RolesCkanGroupOrOrg.valueOf(capacity.toUpperCase()))){
RolesCkanGroupOrOrg enumRole = RolesCkanGroupOrOrg.valueOf(capacity.toUpperCase());
if(rolesToMatch.contains(RolesCkanGroupOrOrg.convertFromCapacity(capacity))){
RolesCkanGroupOrOrg enumRole = RolesCkanGroupOrOrg.convertFromCapacity(capacity);
rolesIntoOrg.add(enumRole);
logger.debug("User " + ckanUsername + " has role " + enumRole +
" into organization with name " + ckanOrganization.getName());
@ -892,7 +892,7 @@ public class DataCatalogueImpl implements DataCatalogue{
// replace those values
parameter = parameter.replace("ORGANIZATION_ID_NAME", organizationNameToCheck);
parameter = parameter.replace("USERNAME_ID_NAME", ckanUsername);
parameter = parameter.replace("ROLE", correspondentRoleToCheck.toString().toLowerCase());
parameter = parameter.replace("ROLE", RolesCkanGroupOrOrg.convertToCkanCapacity(correspondentRoleToCheck));
logger.debug("API request for organization membership is going to be " + parameter);
@ -936,7 +936,7 @@ public class DataCatalogueImpl implements DataCatalogue{
for (CkanUser ckanUser : users) {
if(ckanUser.getName().equals(ckanUsername))
if(ckanUser.getCapacity().equals(correspondentRoleToCheck.toString().toLowerCase()))
if(ckanUser.getCapacity().equals(RolesCkanGroupOrOrg.convertToCkanCapacity(correspondentRoleToCheck)))
return true;
else
break;
@ -982,7 +982,7 @@ public class DataCatalogueImpl implements DataCatalogue{
// replace those values
parameter = parameter.replace("ORGANIZATION_ID_NAME", groupNameToCheck);
parameter = parameter.replace("USERNAME_ID_NAME", ckanUsername);
parameter = parameter.replace("ROLE", correspondentRoleToCheck.toString().toLowerCase());
parameter = parameter.replace("ROLE", RolesCkanGroupOrOrg.convertToCkanCapacity(correspondentRoleToCheck));
logger.debug("API request for organization membership is going to be " + parameter);
@ -1443,13 +1443,13 @@ public class DataCatalogueImpl implements DataCatalogue{
List<CkanUser> users = group.getUsers();
for (CkanUser ckanUser : users) {
List<String> listUsers;
if(capacityAndUsers.containsKey(ckanUser.getCapacity())){
listUsers = capacityAndUsers.get(ckanUser.getCapacity());
if(capacityAndUsers.containsKey(RolesCkanGroupOrOrg.convertFromCapacity(ckanUser.getCapacity()))){
listUsers = capacityAndUsers.get(RolesCkanGroupOrOrg.convertFromCapacity(ckanUser.getCapacity()));
}else
listUsers = new ArrayList<String>();
listUsers.add(ckanUser.getName());
capacityAndUsers.put(RolesCkanGroupOrOrg.valueOf(ckanUser.getCapacity().toUpperCase()), listUsers);
capacityAndUsers.put(RolesCkanGroupOrOrg.convertFromCapacity(ckanUser.getCapacity()), listUsers);
}

View File

@ -7,5 +7,23 @@ package org.gcube.datacatalogue.ckanutillibrary.models;
public enum RolesCkanGroupOrOrg{
MEMBER,
EDITOR,
ADMIN
ADMIN;
public static String convertToCkanCapacity(RolesCkanGroupOrOrg role){
if(role == null)
return null;
else
return role.toString().toLowerCase();
}
public static RolesCkanGroupOrOrg convertFromCapacity(String capacity){
if(capacity == null)
return null;
else
return RolesCkanGroupOrOrg.valueOf(capacity.toUpperCase());
}
}

View File

@ -36,7 +36,7 @@ public class TestDataCatalogueLib {
String subjectId = "aa_father4";
String objectId = "bb_son4";
// @Before
//@Before
public void before(){
factory = DataCatalogueFactory.getFactory();
}
@ -385,4 +385,12 @@ public class TestDataCatalogueLib {
}
//@Test
public void getGroupsRoles() throws Exception{
DataCatalogueImpl instance = factory.getUtilsPerScope(scope);
Map<RolesCkanGroupOrOrg, List<String>> res = instance.getRolesAndUsersGroup("abundance-level");
logger.debug(res.toString());
}
}