diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java index 12557b4..6686939 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java @@ -116,10 +116,6 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT public static final String SELECTION_STATE_ATTRIBUTE = "WORKSPACE.SELECTION_STATE"; protected Logger workspaceLogger = Logger.getLogger(GWTWorkspaceServiceImpl.class); - // for the data catalogue - private static final String CKAN_ROLE = "ckanRole"; // a true value means the user has admin role, false means member - private static final String CKAN_ORGANIZATIONS_PUBLISH_KEY = "ckanOrganizationsPublish"; // here he can publish - /** * Gets the GWT workspace builder. * diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/util/UserUtil.java b/src/main/java/org/gcube/portlets/user/workspace/server/util/UserUtil.java index 5f7eee1..a4d9486 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/util/UserUtil.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/util/UserUtil.java @@ -208,6 +208,9 @@ public class UserUtil { // get highest role RolesCkanGroupOrOrg correspondentRoleToCheck = getLiferayHighestRoleInOrg(roles); + if(correspondentRoleToCheck.equals(RolesCkanGroupOrOrg.MEMBER)) + continue; + checkIfRoleIsSetInCkanInstance(username, gCubeGroupName, correspondentRoleToCheck, workspaceInstance, groupManager, gCubeGroup.getGroupId(), orgsInWhichAtLeastEditorRole); } @@ -229,6 +232,9 @@ public class UserUtil { // get highest role RolesCkanGroupOrOrg correspondentRoleToCheck = getLiferayHighestRoleInOrg(roles); + if(correspondentRoleToCheck.equals(RolesCkanGroupOrOrg.MEMBER)) + continue; + checkIfRoleIsSetInCkanInstance(username, gCubeGroupName, correspondentRoleToCheck, workspaceInstance, groupManager, gCubeGroup.getGroupId(), orgsInWhichAtLeastEditorRole); } @@ -283,7 +289,7 @@ public class UserUtil { // if there is an instance of ckan in this scope.. if(catalogue != null){ boolean res = catalogue.checkRoleIntoOrganization(username, gCubeGroupName, correspondentRoleToCheck); - + if(res && !correspondentRoleToCheck.equals(RolesCkanGroupOrOrg.MEMBER)){ // get the orgs of the user List ckanOrgs = catalogue.getOrganizationsByUser(username);