From 731a389cb1f4cc710bf8e11b6d763568c69628e9 Mon Sep 17 00:00:00 2001 From: Teryk Bellahsene Date: Wed, 8 Jun 2016 14:28:59 +0200 Subject: [PATCH] SONAR-7726 WS api/permissions/search_templates returns all the project permissions --- .../ws/template/SearchTemplatesAction.java | 4 +- .../ws/template/SearchTemplatesData.java | 15 +----- .../ws/template/search_templates-example.json | 53 +++++++++++++++++-- .../template/SearchTemplatesActionTest.java | 1 - 4 files changed, 52 insertions(+), 21 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/SearchTemplatesAction.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/SearchTemplatesAction.java index 1c182c9faa6..7e2d03b7b70 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/SearchTemplatesAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/SearchTemplatesAction.java @@ -101,7 +101,7 @@ public class SearchTemplatesAction implements PermissionsWsAction { private static void buildDefaultTemplatesResponse(SearchTemplatesWsResponse.Builder response, SearchTemplatesData data) { TemplateIdQualifier.Builder templateUuidQualifierBuilder = TemplateIdQualifier.newBuilder(); - for (DefaultPermissionTemplateFinder.TemplateUuidQualifier templateUuidQualifier : data.defaultTempltes()) { + for (DefaultPermissionTemplateFinder.TemplateUuidQualifier templateUuidQualifier : data.defaultTemplates()) { response.addDefaultTemplates(templateUuidQualifierBuilder .clear() .setQualifier(templateUuidQualifier.getQualifier()) @@ -126,7 +126,7 @@ public class SearchTemplatesAction implements PermissionsWsAction { if (templateDto.getDescription() != null) { templateBuilder.setDescription(templateDto.getDescription()); } - for (String permission : data.permissions(templateDto.getId())) { + for (String permission : ProjectPermissions.ALL) { templateBuilder.addPermissions( permissionResponse .clear() diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/SearchTemplatesData.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/SearchTemplatesData.java index 79795d4a2e0..5cf96f0d11a 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/SearchTemplatesData.java +++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/SearchTemplatesData.java @@ -19,11 +19,8 @@ */ package org.sonar.server.permission.ws.template; -import com.google.common.collect.FluentIterable; -import com.google.common.collect.Iterables; import com.google.common.collect.Table; import java.util.List; -import java.util.Set; import org.sonar.db.permission.PermissionTemplateDto; import org.sonar.server.permission.ws.template.DefaultPermissionTemplateFinder.TemplateUuidQualifier; @@ -31,7 +28,6 @@ import static com.google.common.base.MoreObjects.firstNonNull; import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.ImmutableList.copyOf; import static com.google.common.collect.ImmutableTable.copyOf; -import static com.google.common.collect.Ordering.natural; class SearchTemplatesData { private final List templates; @@ -54,7 +50,7 @@ class SearchTemplatesData { return templates; } - public List defaultTempltes() { + public List defaultTemplates() { return defaultTemplates; } @@ -66,15 +62,6 @@ class SearchTemplatesData { return firstNonNull(groupCountByTemplateIdAndPermission.get(templateId, permission), 0); } - public Set permissions(long templateId) { - return FluentIterable.from( - Iterables.concat( - userCountByTemplateIdAndPermission.row(templateId).keySet(), - groupCountByTemplateIdAndPermission.row(templateId).keySet() - ) - ).toSortedSet(natural()); - } - public static class Builder { private List templates; private List defaultTemplates; diff --git a/server/sonar-server/src/main/resources/org/sonar/server/permission/ws/template/search_templates-example.json b/server/sonar-server/src/main/resources/org/sonar/server/permission/ws/template/search_templates-example.json index 75d69f5b497..1b6b6cccbff 100644 --- a/server/sonar-server/src/main/resources/org/sonar/server/permission/ws/template/search_templates-example.json +++ b/server/sonar-server/src/main/resources/org/sonar/server/permission/ws/template/search_templates-example.json @@ -11,6 +11,26 @@ "key": "user", "usersCount": 0, "groupsCount": 1 + }, + { + "key": "admin", + "usersCount": 0, + "groupsCount": 0 + }, + { + "key": "issueadmin", + "usersCount": 0, + "groupsCount": 0 + }, + { + "key": "codeviewer", + "usersCount": 0, + "groupsCount": 0 + }, + { + "key": "scan", + "usersCount": 0, + "groupsCount": 0 } ] }, @@ -21,19 +41,29 @@ "createdAt": "2001-09-09T03:46:40+0200", "updatedAt": "2001-09-09T03:46:40+0200", "permissions": [ + { + "key": "user", + "usersCount": 0, + "groupsCount": 0 + }, { "key": "admin", "usersCount": 0, "groupsCount": 1 }, + { + "key": "issueadmin", + "usersCount": 3, + "groupsCount": 0 + }, { "key": "codeviewer", "usersCount": 1, "groupsCount": 0 }, { - "key": "issueadmin", - "usersCount": 3, + "key": "scan", + "usersCount": 0, "groupsCount": 0 } ] @@ -46,14 +76,29 @@ "createdAt": "2001-09-09T03:46:40+0200", "updatedAt": "2004-11-09T12:33:20+0100", "permissions": [ + { + "key": "user", + "usersCount": 2, + "groupsCount": 0 + }, + { + "key": "admin", + "usersCount": 0, + "groupsCount": 0 + }, { "key": "issueadmin", "usersCount": 0, "groupsCount": 3 }, { - "key": "user", - "usersCount": 2, + "key": "codeviewer", + "usersCount": 0, + "groupsCount": 0 + }, + { + "key": "scan", + "usersCount": 0, "groupsCount": 0 } ] diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/SearchTemplatesActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/SearchTemplatesActionTest.java index bbf2f1222b0..cc9459b6641 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/SearchTemplatesActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/SearchTemplatesActionTest.java @@ -127,7 +127,6 @@ public class SearchTemplatesActionTest { assertJson(result) .withStrictArrayOrder() - .ignoreFields("permissions") .isSimilarTo(getClass().getResource("search_templates-example.json")); } -- 2.39.5