]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-7726 WS api/permissions/search_templates returns all the project permissions
authorTeryk Bellahsene <teryk.bellahsene@sonarsource.com>
Wed, 8 Jun 2016 12:28:59 +0000 (14:28 +0200)
committerTeryk Bellahsene <teryk.bellahsene@sonarsource.com>
Thu, 9 Jun 2016 11:54:02 +0000 (13:54 +0200)
server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/SearchTemplatesAction.java
server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/SearchTemplatesData.java
server/sonar-server/src/main/resources/org/sonar/server/permission/ws/template/search_templates-example.json
server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/SearchTemplatesActionTest.java

index 1c182c9faa63dddeca6f0536d858227e18cb1659..7e2d03b7b70f1ff37e20566460d6f6aaa1bf3239 100644 (file)
@@ -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()
index 79795d4a2e0bf6eebab1cb5cdcc9808f217e8b93..5cf96f0d11ae504a0ee42dbe14af8977cec368bf 100644 (file)
  */
 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<PermissionTemplateDto> templates;
@@ -54,7 +50,7 @@ class SearchTemplatesData {
     return templates;
   }
 
-  public List<TemplateUuidQualifier> defaultTempltes() {
+  public List<TemplateUuidQualifier> defaultTemplates() {
     return defaultTemplates;
   }
 
@@ -66,15 +62,6 @@ class SearchTemplatesData {
     return firstNonNull(groupCountByTemplateIdAndPermission.get(templateId, permission), 0);
   }
 
-  public Set<String> permissions(long templateId) {
-    return FluentIterable.from(
-      Iterables.concat(
-        userCountByTemplateIdAndPermission.row(templateId).keySet(),
-        groupCountByTemplateIdAndPermission.row(templateId).keySet()
-        )
-      ).toSortedSet(natural());
-  }
-
   public static class Builder {
     private List<PermissionTemplateDto> templates;
     private List<TemplateUuidQualifier> defaultTemplates;
index 75d69f5b4970d1e5a24b6e686cc16f1fe1e829c2..1b6b6cccbff623813c1b990f972359b2b0613c3a 100644 (file)
           "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
         }
       ]
     },
       "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
         }
       ]
       "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
         }
       ]
index bbf2f1222b0eb038dad79f4f4a4a81fb595733bd..cc9459b6641f3b6533e6524c310c257b7e59e819 100644 (file)
@@ -127,7 +127,6 @@ public class SearchTemplatesActionTest {
 
     assertJson(result)
       .withStrictArrayOrder()
-      .ignoreFields("permissions")
       .isSimilarTo(getClass().getResource("search_templates-example.json"));
   }