aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-alm-client/src/main/java
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2025-03-27 11:47:41 +0100
committersonartech <sonartech@sonarsource.com>2025-03-27 20:03:18 +0000
commitda85b610a547eeda11ee899488cd3b28574373dd (patch)
treed90dc95f34612a220a340d3f6b12a6d1ce9bd419 /server/sonar-alm-client/src/main/java
parent4a1f35e0b3c4ae16a3922c1a597a94f3c5ecbfdc (diff)
downloadsonarqube-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.java17
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()) {