diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2025-03-27 11:47:41 +0100 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2025-03-27 20:03:18 +0000 |
commit | da85b610a547eeda11ee899488cd3b28574373dd (patch) | |
tree | d90dc95f34612a220a340d3f6b12a6d1ce9bd419 /server/sonar-alm-client/src/main/java | |
parent | 4a1f35e0b3c4ae16a3922c1a597a94f3c5ecbfdc (diff) | |
download | sonarqube-da85b610a547eeda11ee899488cd3b28574373dd.tar.gz sonarqube-da85b610a547eeda11ee899488cd3b28574373dd.zip |
SONAR-24667 Stop relying on UserRole from the plugin API
Diffstat (limited to 'server/sonar-alm-client/src/main/java')
-rw-r--r-- | server/sonar-alm-client/src/main/java/org/sonar/alm/client/github/GithubPermissionConverter.java | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/server/sonar-alm-client/src/main/java/org/sonar/alm/client/github/GithubPermissionConverter.java b/server/sonar-alm-client/src/main/java/org/sonar/alm/client/github/GithubPermissionConverter.java index 0d8a63a0d18..5e1084a95ec 100644 --- a/server/sonar-alm-client/src/main/java/org/sonar/alm/client/github/GithubPermissionConverter.java +++ b/server/sonar-alm-client/src/main/java/org/sonar/alm/client/github/GithubPermissionConverter.java @@ -24,15 +24,16 @@ import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; +import java.util.stream.Stream; import javax.annotation.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sonar.auth.github.GsonRepositoryPermissions; +import org.sonar.db.permission.ProjectPermission; import org.sonar.db.provisioning.DevOpsPermissionsMappingDto; import static java.util.function.Function.identity; import static java.util.stream.Collectors.toMap; -import static org.sonar.server.permission.PermissionServiceImpl.ALL_PROJECT_PERMISSIONS; public class GithubPermissionConverter { private static final Logger LOG = LoggerFactory.getLogger(GithubPermissionConverter.class); @@ -63,12 +64,12 @@ public class GithubPermissionConverter { new GsonRepositoryPermissions(true, true, true, true, true), ADMIN_GITHUB_ROLE ); - public Map<String, Boolean> toSonarqubeRolesToHasPermissions(Set<String> sonarqubeRoles) { - return ALL_PROJECT_PERMISSIONS.stream() + public Map<ProjectPermission, Boolean> toSonarqubeRolesToHasPermissions(Set<ProjectPermission> sonarqubeRoles) { + return Stream.of(ProjectPermission.values()) .collect(toMap(identity(), sonarqubeRoles::contains)); } - public Set<String> toSonarqubeRolesWithFallbackOnRepositoryPermissions(Set<DevOpsPermissionsMappingDto> allPermissionsMappings, + public Set<ProjectPermission> toSonarqubeRolesWithFallbackOnRepositoryPermissions(Set<DevOpsPermissionsMappingDto> allPermissionsMappings, String githubRoleOrPermission, GsonRepositoryPermissions repositoryPermissions) { String roleName = toRoleName(githubRoleOrPermission); return toSonarqubeRoles(allPermissionsMappings, roleName, repositoryPermissions); @@ -78,19 +79,19 @@ public class GithubPermissionConverter { return GITHUB_GROUP_PERMISSION_TO_ROLE_NAME.getOrDefault(permission, permission); } - public Set<String> toSonarqubeRolesForDefaultRepositoryPermission(Set<DevOpsPermissionsMappingDto> allPermissionsMappings, String roleName) { + public Set<ProjectPermission> toSonarqubeRolesForDefaultRepositoryPermission(Set<DevOpsPermissionsMappingDto> allPermissionsMappings, String roleName) { return toSonarqubeRoles(allPermissionsMappings, roleName, null); } - private static Set<String> toSonarqubeRoles(Set<DevOpsPermissionsMappingDto> allPermissionsMappings, String githubRoleName, + private static Set<ProjectPermission> toSonarqubeRoles(Set<DevOpsPermissionsMappingDto> allPermissionsMappings, String githubRoleName, @Nullable GsonRepositoryPermissions repositoryPermissions) { Map<String, List<DevOpsPermissionsMappingDto>> permissionMappings = allPermissionsMappings.stream() .collect(Collectors.groupingBy(DevOpsPermissionsMappingDto::role)); - Set<String> sonarqubePermissions = Optional.ofNullable(permissionMappings.get(githubRoleName)) + Set<ProjectPermission> sonarqubePermissions = Optional.ofNullable(permissionMappings.get(githubRoleName)) .orElse(GithubPermissionConverter.computeBaseRoleAndGetSqPermissions(permissionMappings, repositoryPermissions)) .stream() - .map(DevOpsPermissionsMappingDto::sonarqubePermission) + .map(DevOpsPermissionsMappingDto::projectPermission) .collect(Collectors.toSet()); if (sonarqubePermissions.isEmpty()) { |