diff options
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> |