]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-4963 Return description in /permissions/search_groups
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Tue, 26 Aug 2014 09:26:50 +0000 (11:26 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Tue, 26 Aug 2014 09:26:58 +0000 (11:26 +0200)
server/sonar-web/src/main/webapp/WEB-INF/app/controllers/permissions_controller.rb
sonar-core/src/main/java/org/sonar/core/permission/GroupWithPermission.java
sonar-core/src/main/java/org/sonar/core/permission/GroupWithPermissionDto.java
sonar-core/src/main/resources/org/sonar/core/permission/PermissionMapper.xml
sonar-core/src/test/java/org/sonar/core/permission/GroupWithPermissionDaoTest.java
sonar-core/src/test/java/org/sonar/core/permission/GroupWithPermissionDtoTest.java
sonar-core/src/test/resources/org/sonar/core/permission/GroupWithPermissionDaoTest/groups_with_permissions.xml
sonar-core/src/test/resources/org/sonar/core/permission/GroupWithPermissionDaoTest/groups_with_permissions_should_be_sorted_by_group_name.xml

index 475ce7b2fc88b5ba1d95d29f926ce6444c6e2512..1e427ff48aff0ab5784d8cfe0126a254b93050c4 100644 (file)
@@ -55,10 +55,14 @@ class PermissionsController < ApplicationController
       format.json {
         render :json => {
             :more => more,
-            :results => groups.map { |group| {
-                :name => group.name(),
-                :selected => group.hasPermission()
-            }}
+            :results => groups.map { |group|
+              hash = {
+                  :name => group.name(),
+                  :selected => group.hasPermission()
+              }
+              hash[:description] = group.description() if group.description() && !group.description().blank?
+              hash
+            }
         }
       }
     end
index d151084e4da5490d1b1d93aa62baea5864456641..4ab0791a07a5f4f5df1cde07ca18cf499c7f77fc 100644 (file)
@@ -23,9 +23,13 @@ package org.sonar.core.permission;
 import org.apache.commons.lang.builder.ToStringBuilder;
 import org.apache.commons.lang.builder.ToStringStyle;
 
+import javax.annotation.CheckForNull;
+import javax.annotation.Nullable;
+
 public class GroupWithPermission {
 
   private String name;
+  private String description;
   private boolean hasPermission;
 
   public String name() {
@@ -37,6 +41,16 @@ public class GroupWithPermission {
     return this;
   }
 
+  @CheckForNull
+  public String description() {
+    return description;
+  }
+
+  public GroupWithPermission setDescription(@Nullable String description) {
+    this.description = description;
+    return this;
+  }
+
   public boolean hasPermission() {
     return hasPermission;
   }
index 2fba2f9301e9860acc9bad2926ded9a7ae5c9766..78d420998971e504a40c0879296c6188624c812c 100644 (file)
@@ -27,6 +27,7 @@ public class GroupWithPermissionDto {
 
   private String name;
   private String permission;
+  private String description;
 
   public String getName() {
     return name;
@@ -47,9 +48,20 @@ public class GroupWithPermissionDto {
     return this;
   }
 
+  @CheckForNull
+  public String getDescription() {
+    return description;
+  }
+
+  public GroupWithPermissionDto setDescription(@Nullable String description) {
+    this.description = description;
+    return this;
+  }
+
   public GroupWithPermission toGroupWithPermission() {
     return new GroupWithPermission()
       .setName(name)
+      .setDescription(description)
       .hasPermission(permission != null);
   }
 }
index 4b95b2be527d5fd4d4d2c37993b2d924b018157a..b3957662fa9d9a0438544fcd8d35df10ca8bc649 100644 (file)
@@ -31,8 +31,8 @@
   </select>
 
   <select id="selectGroups" parameterType="map" resultType="GroupWithPermission">
-    SELECT name, permission FROM
-    (SELECT g.name as name, group_role.role as permission
+    SELECT name, description, permission FROM
+    (SELECT g.name as name, g.description as description, group_role.role as permission
     FROM groups g
     LEFT JOIN group_roles group_role ON group_role.group_id=g.id
       AND group_role.role=#{query.permission}
@@ -44,7 +44,7 @@
     </if>
     UNION
     -- Add Anyone group permission
-    SELECT #{anyoneGroup} as name, group_role.role as permission
+    SELECT #{anyoneGroup} as name, NULL as description, group_role.role as permission
     FROM group_roles group_role
     <where>
       AND group_role.role=#{query.permission}
index b1e8c3a34d0ef196ce73aa05147df1583b35e408..18b495e3e0abee69ac36b0bd6d03d07559c49009 100644 (file)
@@ -49,18 +49,22 @@ public class GroupWithPermissionDaoTest extends AbstractDaoTestCase {
 
     GroupWithPermissionDto anyone = result.get(0);
     assertThat(anyone.getName()).isEqualTo("Anyone");
+    assertThat(anyone.getDescription()).isNull();
     assertThat(anyone.getPermission()).isNotNull();
 
     GroupWithPermissionDto group1 = result.get(1);
     assertThat(group1.getName()).isEqualTo("sonar-administrators");
+    assertThat(group1.getDescription()).isEqualTo("System administrators");
     assertThat(group1.getPermission()).isNotNull();
 
     GroupWithPermissionDto group2 = result.get(2);
     assertThat(group2.getName()).isEqualTo("sonar-reviewers");
+    assertThat(group2.getDescription()).isEqualTo("Reviewers");
     assertThat(group2.getPermission()).isNull();
 
     GroupWithPermissionDto group3 = result.get(3);
     assertThat(group3.getName()).isEqualTo("sonar-users");
+    assertThat(group3.getDescription()).isEqualTo("Any new users created will automatically join this group");
     assertThat(group3.getPermission()).isNotNull();
   }
 
index a86a99d79bb162b29ce47b0ca80163966b76cfc2..b04c08b794ba766becbc2d1eaf0ce21ac08a18cc 100644 (file)
@@ -30,10 +30,12 @@ public class GroupWithPermissionDtoTest {
   public void to_group_with_permission_having_permission() throws Exception {
     GroupWithPermission group = new GroupWithPermissionDto()
       .setName("users")
+      .setDescription("desc")
       .setPermission("user")
       .toGroupWithPermission();
 
     assertThat(group.name()).isEqualTo("users");
+    assertThat(group.description()).isEqualTo("desc");
     assertThat(group.hasPermission()).isTrue();
   }
 
@@ -45,6 +47,7 @@ public class GroupWithPermissionDtoTest {
       .toGroupWithPermission();
 
     assertThat(group.name()).isEqualTo("users");
+    assertThat(group.description()).isNull();
     assertThat(group.hasPermission()).isFalse();
   }
 }
index 820e566dbdf1690472f049d09b8e4e8a51f5bb70..418d5e69fac825e1901c72f88a4c2966185ed57b 100644 (file)
@@ -1,8 +1,8 @@
 <dataset>
 
-  <groups id="200" name="sonar-administrators"/>
-  <groups id="201" name="sonar-users" />
-  <groups id="202" name="sonar-reviewers" />
+  <groups id="200" name="sonar-administrators" description="System administrators"/>
+  <groups id="201" name="sonar-users" description="Any new users created will automatically join this group"/>
+  <groups id="202" name="sonar-reviewers" description="Reviewers"/>
 
   <!-- Project permissions -->
   <group_roles id="1" group_id="200" resource_id="100" role="user"/>
index ba9d9acf29768e79865c35852d3a4d79d160f0eb..10ab0e21e3f21f08d767794e3d470f693954fdc0 100644 (file)
@@ -1,8 +1,8 @@
 <dataset>
 
-  <groups id="200" name="sonar-reviewers" />
-  <groups id="201" name="sonar-users" />
-  <groups id="202" name="sonar-administrators"/>
+  <groups id="200" name="sonar-reviewers" description="Reviewers"/>
+  <groups id="201" name="sonar-users" description="Any new users created will automatically join this group"/>
+  <groups id="202" name="sonar-administrators" description="System administrators"/>
 
   <!-- Project permissions -->
   <group_roles id="1" group_id="200" resource_id="100" role="user"/>