]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-9022 Add utility methods to retrieve GroupDto from request
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Thu, 30 Mar 2017 13:02:10 +0000 (15:02 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Thu, 13 Apr 2017 09:51:55 +0000 (11:51 +0200)
server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/GroupId.java
server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/GroupIdOrAnyone.java
server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/GroupWsSupport.java
server/sonar-server/src/test/java/org/sonar/server/permission/GroupPermissionChangerTest.java

index 5421c6e92999fa27a379e68ba1b22da5fa7e8288..d1cee368b8ca3d71fcf1e2bf3c6a75006ee51539 100644 (file)
@@ -37,7 +37,7 @@ public class GroupId {
   private final int id;
   private final String organizationUuid;
 
-  public GroupId(String organizationUuid, int id) {
+  private GroupId(String organizationUuid, int id) {
     this.id = id;
     this.organizationUuid = requireNonNull(organizationUuid);
   }
index cf3a6e4ed801dae8603fb9b0d3ac81e919f9f1cd..ece3dc5df19620f31c38964a5f615ad7f7df06da 100644 (file)
@@ -40,16 +40,11 @@ public class GroupIdOrAnyone {
   private final Integer id;
   private final String organizationUuid;
 
-  public GroupIdOrAnyone(String organizationUuid, @Nullable Integer id) {
+  private GroupIdOrAnyone(String organizationUuid, @Nullable Integer id) {
     this.id = id;
     this.organizationUuid = requireNonNull(organizationUuid);
   }
 
-  public GroupIdOrAnyone(GroupDto group) {
-    this.id = requireNonNull(group.getId());
-    this.organizationUuid = requireNonNull(group.getOrganizationUuid());
-  }
-
   public boolean isAnyone() {
     return id == null;
   }
index ccb73d0089cf80a13c54334bce0620c8aeff9541..d219bb1027c7f4ec08b7610f33e617a0c143789d 100644 (file)
@@ -71,31 +71,27 @@ public class GroupWsSupport {
    * or if the virtual group "Anyone" is requested.
    */
   public GroupId findGroup(DbSession dbSession, Request request) {
+    return GroupId.from(findGroupDto(dbSession, request));
+  }
+
+  public GroupDto findGroupDto(DbSession dbSession, Request request) {
     Integer id = request.paramAsInt(PARAM_GROUP_ID);
     String organizationKey = request.param(PARAM_ORGANIZATION_KEY);
     String name = request.param(PARAM_GROUP_NAME);
-    return findGroup(dbSession, GroupWsRef.create(id, organizationKey, name));
+    return findGroupDto(dbSession, GroupWsRef.create(id, organizationKey, name));
   }
 
-  /**
-   * Finds a user group by its reference. If organization is not defined then group
-   * is searched in default organization.
-   *
-   * @return non-null group
-   * @throws NotFoundException if the requested group does not exist
-   * @throws NotFoundException if the requested group is Anyone
-   */
-  public GroupId findGroup(DbSession dbSession, GroupWsRef ref) {
+  public GroupDto findGroupDto(DbSession dbSession, GroupWsRef ref) {
     if (ref.hasId()) {
       GroupDto group = dbClient.groupDao().selectById(dbSession, ref.getId());
       checkFound(group, "No group with id '%s'", ref.getId());
-      return GroupId.from(group);
+      return group;
     }
 
     OrganizationDto org = findOrganizationByKey(dbSession, ref.getOrganizationKey());
     Optional<GroupDto> group = dbClient.groupDao().selectByName(dbSession, org.getUuid(), ref.getName());
     checkFoundWithOptional(group, "No group with name '%s' in organization '%s'", ref.getName(), org.getKey());
-    return GroupId.from(group.get());
+    return group.get();
   }
 
   public GroupIdOrAnyone findGroupOrAnyone(DbSession dbSession, GroupWsRef ref) {
index c93e1ff76e4a4b4c7cb3931ca9883984748498e3..f2cc950ca9fb83c97aa0ef067c0b323a4946542e 100644 (file)
@@ -60,7 +60,7 @@ public class GroupPermissionChangerTest {
 
   @Test
   public void add_permission_to_group() {
-    GroupIdOrAnyone groupId = new GroupIdOrAnyone(group);
+    GroupIdOrAnyone groupId = GroupIdOrAnyone.from(group);
 
     apply(new GroupPermissionChange(PermissionChange.Operation.ADD, GlobalPermissions.QUALITY_GATE_ADMIN, null, groupId));
 
@@ -69,7 +69,7 @@ public class GroupPermissionChangerTest {
 
   @Test
   public void add_project_permission_to_group() {
-    GroupIdOrAnyone groupId = new GroupIdOrAnyone(group);
+    GroupIdOrAnyone groupId = GroupIdOrAnyone.from(group);
 
     apply(new GroupPermissionChange(PermissionChange.Operation.ADD, UserRole.ISSUE_ADMIN, new ProjectId(project), groupId));
 
@@ -80,7 +80,7 @@ public class GroupPermissionChangerTest {
   @Test
   public void add_permission_to_anyone() {
     OrganizationDto defaultOrganization = db.getDefaultOrganization();
-    GroupIdOrAnyone groupId = new GroupIdOrAnyone(defaultOrganization.getUuid(), null);
+    GroupIdOrAnyone groupId = GroupIdOrAnyone.forAnyone(defaultOrganization.getUuid());
 
     apply(new GroupPermissionChange(PermissionChange.Operation.ADD, GlobalPermissions.QUALITY_GATE_ADMIN, null, groupId));
 
@@ -90,7 +90,7 @@ public class GroupPermissionChangerTest {
 
   @Test
   public void add_project_permission_to_anyone() {
-    GroupIdOrAnyone groupId = new GroupIdOrAnyone(org.getUuid(), null);
+    GroupIdOrAnyone groupId = GroupIdOrAnyone.forAnyone(org.getUuid());
 
     apply(new GroupPermissionChange(PermissionChange.Operation.ADD, UserRole.ISSUE_ADMIN, new ProjectId(project), groupId));
 
@@ -100,7 +100,7 @@ public class GroupPermissionChangerTest {
 
   @Test
   public void do_nothing_when_adding_permission_that_already_exists() {
-    GroupIdOrAnyone groupId = new GroupIdOrAnyone(group);
+    GroupIdOrAnyone groupId = GroupIdOrAnyone.from(group);
     db.users().insertPermissionOnGroup(group, ADMINISTER_QUALITY_GATES);
 
     apply(new GroupPermissionChange(PermissionChange.Operation.ADD, ADMINISTER_QUALITY_GATES.getKey(), null, groupId));
@@ -110,7 +110,7 @@ public class GroupPermissionChangerTest {
 
   @Test
   public void fail_to_add_global_permission_on_project() {
-    GroupIdOrAnyone groupId = new GroupIdOrAnyone(group);
+    GroupIdOrAnyone groupId = GroupIdOrAnyone.from(group);
 
     expectedException.expect(BadRequestException.class);
     expectedException.expectMessage("Invalid project permission 'gateadmin'. Valid values are [admin, codeviewer, issueadmin, scan, user]");
@@ -120,7 +120,7 @@ public class GroupPermissionChangerTest {
 
   @Test
   public void fail_to_add_project_permission_on_global_group() {
-    GroupIdOrAnyone groupId = new GroupIdOrAnyone(group);
+    GroupIdOrAnyone groupId = GroupIdOrAnyone.from(group);
 
     expectedException.expect(BadRequestException.class);
     expectedException.expectMessage("Invalid global permission 'issueadmin'. Valid values are [admin, profileadmin, gateadmin, scan, provisioning]");
@@ -130,7 +130,7 @@ public class GroupPermissionChangerTest {
 
   @Test
   public void remove_permission_from_group() {
-    GroupIdOrAnyone groupId = new GroupIdOrAnyone(group);
+    GroupIdOrAnyone groupId = GroupIdOrAnyone.from(group);
     db.users().insertPermissionOnGroup(group, ADMINISTER_QUALITY_GATES);
     db.users().insertPermissionOnGroup(group, PROVISION_PROJECTS);
 
@@ -141,7 +141,7 @@ public class GroupPermissionChangerTest {
 
   @Test
   public void remove_project_permission_from_group() {
-    GroupIdOrAnyone groupId = new GroupIdOrAnyone(group);
+    GroupIdOrAnyone groupId = GroupIdOrAnyone.from(group);
     db.users().insertPermissionOnGroup(group, ADMINISTER_QUALITY_GATES);
     db.users().insertProjectPermissionOnGroup(group, UserRole.ISSUE_ADMIN, project);
     db.users().insertProjectPermissionOnGroup(group, UserRole.CODEVIEWER, project);
@@ -154,7 +154,7 @@ public class GroupPermissionChangerTest {
 
   @Test
   public void do_not_fail_if_removing_a_permission_that_does_not_exist() {
-    GroupIdOrAnyone groupId = new GroupIdOrAnyone(group);
+    GroupIdOrAnyone groupId = GroupIdOrAnyone.from(group);
 
     apply(new GroupPermissionChange(PermissionChange.Operation.REMOVE, UserRole.ISSUE_ADMIN, new ProjectId(project), groupId));
 
@@ -164,7 +164,7 @@ public class GroupPermissionChangerTest {
 
   @Test
   public void fail_to_remove_admin_permission_if_no_more_admins() {
-    GroupIdOrAnyone groupId = new GroupIdOrAnyone(group);
+    GroupIdOrAnyone groupId = GroupIdOrAnyone.from(group);
     db.users().insertPermissionOnGroup(group, ADMINISTER);
 
     expectedException.expect(BadRequestException.class);
@@ -175,7 +175,7 @@ public class GroupPermissionChangerTest {
 
   @Test
   public void remove_admin_group_if_still_other_admins() {
-    GroupIdOrAnyone groupId = new GroupIdOrAnyone(group);
+    GroupIdOrAnyone groupId = GroupIdOrAnyone.from(group);
     db.users().insertPermissionOnGroup(group, ADMINISTER);
     UserDto admin = db.users().insertUser();
     db.users().insertPermissionOnUser(org, admin, ADMINISTER);