diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/AssociationToGroupThread.java b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/AssociationToGroupThread.java index b50ea07..a1c2244 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/AssociationToGroupThread.java +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/AssociationToGroupThread.java @@ -19,6 +19,7 @@ public class AssociationToGroupThread extends Thread { private String datasetId; private String username; private DataCatalogue catalogue; + private String organization; /** * @param groupTitle @@ -27,11 +28,12 @@ public class AssociationToGroupThread extends Thread { * @param catalogue */ public AssociationToGroupThread(String groupTitle, String datasetId, - String username, DataCatalogue catalogue) { + String username, DataCatalogue catalogue, String organization) { this.groupTitle = groupTitle; this.datasetId = datasetId; this.username = username; this.catalogue = catalogue; + this.organization = organization; } @Override @@ -49,8 +51,11 @@ public class AssociationToGroupThread extends Thread { }else{ logger.debug("Group exists, going to add the user " + username + " as its admin..."); + + // retrieve the role to be assigned according the one the user has into the organization of the dataset + RolesCkanGroupOrOrg role = RolesCkanGroupOrOrg.valueOf(catalogue.getRoleOfUserInOrganization(username, organization, catalogue.getApiKeyFromUsername(username).toUpperCase())); - boolean assigned = catalogue.checkRoleIntoGroup(username, groupTitle, RolesCkanGroupOrOrg.ADMIN); + boolean assigned = catalogue.checkRoleIntoGroup(username, groupTitle, role); if(assigned){ diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/CKANPublisherServicesImpl.java b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/CKANPublisherServicesImpl.java index 396239f..1f6fa09 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/CKANPublisherServicesImpl.java +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/CKANPublisherServicesImpl.java @@ -497,7 +497,7 @@ public class CKANPublisherServicesImpl extends RemoteServiceServlet implements C // start a thread that will associate this dataset with the group if(toCreate.getChosenProfile() != null){ - AssociationToGroupThread thread = new AssociationToGroupThread(toCreate.getChosenProfile(), datasetId, userName, utils); + AssociationToGroupThread thread = new AssociationToGroupThread(toCreate.getChosenProfile(), datasetId, userName, utils, organizationNameOrId); thread.start(); }