diff --git a/src/main/java/org/gcube/portal/oidc/lr62/UserSitesToGroupsAndRolesMapper.java b/src/main/java/org/gcube/portal/oidc/lr62/UserSitesToGroupsAndRolesMapper.java index 3b2f961..857843f 100644 --- a/src/main/java/org/gcube/portal/oidc/lr62/UserSitesToGroupsAndRolesMapper.java +++ b/src/main/java/org/gcube/portal/oidc/lr62/UserSitesToGroupsAndRolesMapper.java @@ -159,7 +159,10 @@ public class UserSitesToGroupsAndRolesMapper { log.info("Checking actual roles in the site's group"); for (String gcRoleName : actualSiteGroupRoles) { String actualSiteName = actualSite.getName(); - if (!actualSite.getRoles().contains(gcRoleName)) { + // 'D4ScienceMappings.Role.valueOf(gcRoleName) != null' is used to be sure that is a d4s role and not + // a Liferay role that must be let as it is + if (D4ScienceMappings.Role.valueOf(gcRoleName) != null + && !actualSite.getRoles().contains(gcRoleName)) { try { log.info("Removing '" + gcRoleName + "' user's role for site: " + actualSiteName); roleManager.removeRoleFromUser(user.getUserId(), actualSiteGroupId,