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
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() {
return this;
}
+ @CheckForNull
+ public String description() {
+ return description;
+ }
+
+ public GroupWithPermission setDescription(@Nullable String description) {
+ this.description = description;
+ return this;
+ }
+
public boolean hasPermission() {
return hasPermission;
}
private String name;
private String permission;
+ private String description;
public String getName() {
return name;
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);
}
}
</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}
</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}
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();
}
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();
}
.toGroupWithPermission();
assertThat(group.name()).isEqualTo("users");
+ assertThat(group.description()).isNull();
assertThat(group.hasPermission()).isFalse();
}
}
<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"/>
<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"/>