aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/user/GroupMembershipFinderTest.java3
-rw-r--r--server/sonar-web/src/main/webapp/WEB-INF/app/controllers/user_groups_controller.rb14
-rw-r--r--sonar-core/src/main/java/org/sonar/core/user/GroupMembership.java14
-rw-r--r--sonar-core/src/main/java/org/sonar/core/user/GroupMembershipDto.java12
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/user/GroupMembershipMapper.xml2
-rw-r--r--sonar-core/src/test/java/org/sonar/core/user/GroupMembershipDaoTest.java1
-rw-r--r--sonar-core/src/test/java/org/sonar/core/user/GroupMembershipDtoTest.java4
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/user/GroupMembershipDaoTest/select_user_group.xml2
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/user/GroupMembershipDaoTest/shared.xml6
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/user/GroupMembershipDaoTest/should_be_sorted_by_group_name.xml7
10 files changed, 50 insertions, 15 deletions
diff --git a/server/sonar-server/src/test/java/org/sonar/server/user/GroupMembershipFinderTest.java b/server/sonar-server/src/test/java/org/sonar/server/user/GroupMembershipFinderTest.java
index 62da695d7d7..581eaa863be 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/user/GroupMembershipFinderTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/user/GroupMembershipFinderTest.java
@@ -48,7 +48,7 @@ public class GroupMembershipFinderTest {
public void find() throws Exception {
GroupMembershipQuery query = GroupMembershipQuery.builder().login("arthur").build();
when(groupMembershipDao.selectGroups(eq(query), anyLong(), anyInt(), anyInt())).thenReturn(
- newArrayList(new GroupMembershipDto().setId(1L).setName("users").setUserId(100L))
+ newArrayList(new GroupMembershipDto().setId(1L).setName("users").setDescription("Users group").setUserId(100L))
);
GroupMembershipFinder.Membership result = finder.find(query);
@@ -58,6 +58,7 @@ public class GroupMembershipFinderTest {
GroupMembership group = result.groups().get(0);
assertThat(group.id()).isEqualTo(1);
assertThat(group.name()).isEqualTo("users");
+ assertThat(group.description()).isEqualTo("Users group");
assertThat(group.isMember()).isTrue();
}
diff --git a/server/sonar-web/src/main/webapp/WEB-INF/app/controllers/user_groups_controller.rb b/server/sonar-web/src/main/webapp/WEB-INF/app/controllers/user_groups_controller.rb
index 90cd2dc0ec8..94a4671a614 100644
--- a/server/sonar-web/src/main/webapp/WEB-INF/app/controllers/user_groups_controller.rb
+++ b/server/sonar-web/src/main/webapp/WEB-INF/app/controllers/user_groups_controller.rb
@@ -33,11 +33,15 @@ class UserGroupsController < ApplicationController
format.json {
render :json => {
:more => more,
- :results => groups.map { |group| {
- :id => group.id(),
- :name => group.name(),
- :selected => group.isMember()
- }}
+ :results => groups.map { |group|
+ hash = {
+ :id => group.id(),
+ :name => group.name(),
+ :selected => group.isMember()
+ }
+ hash[:description] = group.description() if group.description() && !group.description().blank?
+ hash
+ }
}
}
end
diff --git a/sonar-core/src/main/java/org/sonar/core/user/GroupMembership.java b/sonar-core/src/main/java/org/sonar/core/user/GroupMembership.java
index da448625567..6c12ed4524c 100644
--- a/sonar-core/src/main/java/org/sonar/core/user/GroupMembership.java
+++ b/sonar-core/src/main/java/org/sonar/core/user/GroupMembership.java
@@ -22,10 +22,14 @@ package org.sonar.core.user;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
+import javax.annotation.CheckForNull;
+import javax.annotation.Nullable;
+
public class GroupMembership {
private Long id;
private String name;
+ private String description;
private boolean isMember;
public Long id() {
@@ -46,6 +50,16 @@ public class GroupMembership {
return this;
}
+ @CheckForNull
+ public String description() {
+ return description;
+ }
+
+ public GroupMembership setDescription(@Nullable String description) {
+ this.description = description;
+ return this;
+ }
+
public boolean isMember() {
return isMember;
}
diff --git a/sonar-core/src/main/java/org/sonar/core/user/GroupMembershipDto.java b/sonar-core/src/main/java/org/sonar/core/user/GroupMembershipDto.java
index 7cc7c91cbea..1b5b89474c0 100644
--- a/sonar-core/src/main/java/org/sonar/core/user/GroupMembershipDto.java
+++ b/sonar-core/src/main/java/org/sonar/core/user/GroupMembershipDto.java
@@ -29,6 +29,7 @@ public class GroupMembershipDto {
private Long id;
private String name;
+ private String description;
private Long userId;
public Long getId() {
@@ -50,6 +51,16 @@ public class GroupMembershipDto {
}
@CheckForNull
+ public String getDescription() {
+ return description;
+ }
+
+ public GroupMembershipDto setDescription(@Nullable String description) {
+ this.description = description;
+ return this;
+ }
+
+ @CheckForNull
public Long getUserId() {
return userId;
}
@@ -63,6 +74,7 @@ public class GroupMembershipDto {
return new GroupMembership()
.setId(id)
.setName(name)
+ .setDescription(description)
.setMember(userId != null);
}
}
diff --git a/sonar-core/src/main/resources/org/sonar/core/user/GroupMembershipMapper.xml b/sonar-core/src/main/resources/org/sonar/core/user/GroupMembershipMapper.xml
index c181b697bf0..5a7c4dd214d 100644
--- a/sonar-core/src/main/resources/org/sonar/core/user/GroupMembershipMapper.xml
+++ b/sonar-core/src/main/resources/org/sonar/core/user/GroupMembershipMapper.xml
@@ -4,7 +4,7 @@
<mapper namespace="org.sonar.core.user.GroupMembershipMapper">
<select id="selectGroups" parameterType="map" resultType="GroupMembership">
- SELECT g.id as id, g.name as name, gu.user_id as userId
+ SELECT g.id as id, g.name as name, g.description as description, gu.user_id as userId
FROM groups g
LEFT JOIN groups_users gu ON gu.group_id=g.id AND gu.user_id=#{userId}
<where>
diff --git a/sonar-core/src/test/java/org/sonar/core/user/GroupMembershipDaoTest.java b/sonar-core/src/test/java/org/sonar/core/user/GroupMembershipDaoTest.java
index 1a3dad7c2f3..03acafecc34 100644
--- a/sonar-core/src/test/java/org/sonar/core/user/GroupMembershipDaoTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/user/GroupMembershipDaoTest.java
@@ -57,6 +57,7 @@ public class GroupMembershipDaoTest extends AbstractDaoTestCase {
GroupMembershipDto dto = result.get(0);
assertThat(dto.getId()).isEqualTo(101L);
assertThat(dto.getName()).isEqualTo("sonar-users");
+ assertThat(dto.getDescription()).isEqualTo("Any new users created will automatically join this group");
assertThat(dto.getUserId()).isEqualTo(201L);
}
diff --git a/sonar-core/src/test/java/org/sonar/core/user/GroupMembershipDtoTest.java b/sonar-core/src/test/java/org/sonar/core/user/GroupMembershipDtoTest.java
index bc145fb890a..38efb7ae25e 100644
--- a/sonar-core/src/test/java/org/sonar/core/user/GroupMembershipDtoTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/user/GroupMembershipDtoTest.java
@@ -31,11 +31,13 @@ public class GroupMembershipDtoTest {
GroupMembership group = new GroupMembershipDto()
.setId(1L)
.setName("users")
+ .setDescription("description")
.setUserId(10L)
.toGroupMembership();
assertThat(group.id()).isEqualTo(1);
assertThat(group.name()).isEqualTo("users");
+ assertThat(group.description()).isEqualTo("description");
assertThat(group.isMember()).isTrue();
}
@@ -44,11 +46,13 @@ public class GroupMembershipDtoTest {
GroupMembership group = new GroupMembershipDto()
.setId(1L)
.setName("users")
+ .setDescription("description")
.setUserId(null)
.toGroupMembership();
assertThat(group.id()).isEqualTo(1);
assertThat(group.name()).isEqualTo("users");
+ assertThat(group.description()).isEqualTo("description");
assertThat(group.isMember()).isFalse();
}
diff --git a/sonar-core/src/test/resources/org/sonar/core/user/GroupMembershipDaoTest/select_user_group.xml b/sonar-core/src/test/resources/org/sonar/core/user/GroupMembershipDaoTest/select_user_group.xml
index 6d5fb36ece9..5993aae1121 100644
--- a/sonar-core/src/test/resources/org/sonar/core/user/GroupMembershipDaoTest/select_user_group.xml
+++ b/sonar-core/src/test/resources/org/sonar/core/user/GroupMembershipDaoTest/select_user_group.xml
@@ -1,6 +1,6 @@
<dataset>
- <groups id="101" name="sonar-users" />
+ <groups id="101" name="sonar-users" description="Any new users created will automatically join this group"/>
<groups_users user_id="201" group_id="101"/>
diff --git a/sonar-core/src/test/resources/org/sonar/core/user/GroupMembershipDaoTest/shared.xml b/sonar-core/src/test/resources/org/sonar/core/user/GroupMembershipDaoTest/shared.xml
index 3727413bdcd..f8ab9693a66 100644
--- a/sonar-core/src/test/resources/org/sonar/core/user/GroupMembershipDaoTest/shared.xml
+++ b/sonar-core/src/test/resources/org/sonar/core/user/GroupMembershipDaoTest/shared.xml
@@ -1,8 +1,8 @@
<dataset>
- <groups id="100" name="sonar-administrators"/>
- <groups id="101" name="sonar-users" />
- <groups id="102" name="sonar-reviewers" />
+ <groups id="100" name="sonar-administrators" description="System administrators"/>
+ <groups id="101" name="sonar-users" description="Any new users created will automatically join this group"/>
+ <groups id="102" name="sonar-reviewers" description="Reviewers"/>
<!-- user 200 is in all groups -->
<groups_users user_id="200" group_id="100"/>
diff --git a/sonar-core/src/test/resources/org/sonar/core/user/GroupMembershipDaoTest/should_be_sorted_by_group_name.xml b/sonar-core/src/test/resources/org/sonar/core/user/GroupMembershipDaoTest/should_be_sorted_by_group_name.xml
index 35a02d7ce46..baaecdb40d4 100644
--- a/sonar-core/src/test/resources/org/sonar/core/user/GroupMembershipDaoTest/should_be_sorted_by_group_name.xml
+++ b/sonar-core/src/test/resources/org/sonar/core/user/GroupMembershipDaoTest/should_be_sorted_by_group_name.xml
@@ -1,13 +1,12 @@
<dataset>
- <groups id="100" name="sonar-users" />
- <groups id="101" name="sonar-administrators"/>
- <groups id="102" name="sonar-reviewers" />
+ <groups id="100" name="sonar-users" description="Any new users created will automatically join this group"/>
+ <groups id="101" name="sonar-administrators" description="System administrators"/>/>
+ <groups id="102" name="sonar-reviewers" description="Reviewers"/>
<!-- user 200 is in all groups -->
<groups_users user_id="200" group_id="100"/>
<groups_users user_id="200" group_id="101"/>
<groups_users user_id="200" group_id="102"/>
-
</dataset>