]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-8682 fix error when filtering on name 1548/head
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Mon, 23 Jan 2017 08:46:54 +0000 (09:46 +0100)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Mon, 23 Jan 2017 13:16:01 +0000 (14:16 +0100)
and a given group name exists in multiple organizations

server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateGroupsAction.java
server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/AddGroupToTemplateActionTest.java
server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveGroupFromTemplateActionTest.java
server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/TemplateGroupsActionTest.java
sonar-db/src/main/java/org/sonar/db/permission/template/PermissionTemplateDao.java
sonar-db/src/main/java/org/sonar/db/permission/template/PermissionTemplateMapper.java
sonar-db/src/main/resources/org/sonar/db/permission/template/PermissionTemplateMapper.xml
sonar-db/src/test/java/org/sonar/db/permission/template/GroupWithPermissionTemplateDaoTest.java

index 0f3b354b909425d046720c6737ac5024c34b550b..637417db7c6240a72d805c10e6da12e32911b239 100644 (file)
@@ -94,7 +94,7 @@ public class TemplateGroupsAction implements PermissionsWsAction {
       checkGlobalAdmin(userSession, template.getOrganizationUuid());
 
       PermissionQuery query = buildPermissionQuery(wsRequest);
-      int total = dbClient.permissionTemplateDao().countGroupNamesByQueryAndTemplate(dbSession, query, template.getId());
+      int total = dbClient.permissionTemplateDao().countGroupNamesByQueryAndTemplate(dbSession, query, template.getOrganizationUuid(), template.getId());
       Paging paging = Paging.forPageIndex(wsRequest.mandatoryParamAsInt(PAGE)).withPageSize(wsRequest.mandatoryParamAsInt(PAGE_SIZE)).andTotal(total);
       List<GroupDto> groups = findGroups(dbSession, query, template);
       List<PermissionTemplateGroupDto> groupPermissions = findGroupPermissions(dbSession, groups, template);
@@ -140,7 +140,7 @@ public class TemplateGroupsAction implements PermissionsWsAction {
   }
 
   private List<GroupDto> findGroups(DbSession dbSession, PermissionQuery dbQuery, PermissionTemplateDto template) {
-    List<String> orderedNames = dbClient.permissionTemplateDao().selectGroupNamesByQueryAndTemplate(dbSession, dbQuery, template.getId());
+    List<String> orderedNames = dbClient.permissionTemplateDao().selectGroupNamesByQueryAndTemplate(dbSession, dbQuery, template.getOrganizationUuid(), template.getId());
     List<GroupDto> groups = dbClient.groupDao().selectByNames(dbSession, template.getOrganizationUuid(), orderedNames);
     if (orderedNames.contains(DefaultGroups.ANYONE)) {
       groups.add(0, new GroupDto().setId(0L).setName(DefaultGroups.ANYONE));
index 89d0d44e032f36ce93c1a66fee90e75eea3dd2a7..41c1947e548e21f7c767a99c46f3683c223560c1 100644 (file)
@@ -67,7 +67,7 @@ public class AddGroupToTemplateActionTest extends BasePermissionWsTest<AddGroupT
 
     newRequest(group.getName(), template.getUuid(), CODEVIEWER);
 
-    assertThat(getGroupNamesInTemplateAndPermission(template.getId(), CODEVIEWER)).containsExactly(group.getName());
+    assertThat(getGroupNamesInTemplateAndPermission(template, CODEVIEWER)).containsExactly(group.getName());
   }
 
   @Test
@@ -80,7 +80,7 @@ public class AddGroupToTemplateActionTest extends BasePermissionWsTest<AddGroupT
       .setParam(PARAM_TEMPLATE_NAME, template.getName().toUpperCase())
       .execute();
 
-    assertThat(getGroupNamesInTemplateAndPermission(template.getId(), CODEVIEWER)).containsExactly(group.getName());
+    assertThat(getGroupNamesInTemplateAndPermission(template, CODEVIEWER)).containsExactly(group.getName());
   }
 
   @Test
@@ -93,7 +93,7 @@ public class AddGroupToTemplateActionTest extends BasePermissionWsTest<AddGroupT
       .setParam(PARAM_GROUP_ID, String.valueOf(group.getId()))
       .execute();
 
-    assertThat(getGroupNamesInTemplateAndPermission(template.getId(), CODEVIEWER)).containsExactly(group.getName());
+    assertThat(getGroupNamesInTemplateAndPermission(template, CODEVIEWER)).containsExactly(group.getName());
   }
 
   @Test
@@ -103,7 +103,7 @@ public class AddGroupToTemplateActionTest extends BasePermissionWsTest<AddGroupT
     newRequest(group.getName(), template.getUuid(), ISSUE_ADMIN);
     newRequest(group.getName(), template.getUuid(), ISSUE_ADMIN);
 
-    assertThat(getGroupNamesInTemplateAndPermission(template.getId(), ISSUE_ADMIN)).containsExactly(group.getName());
+    assertThat(getGroupNamesInTemplateAndPermission(template, ISSUE_ADMIN)).containsExactly(group.getName());
   }
 
   @Test
@@ -112,7 +112,7 @@ public class AddGroupToTemplateActionTest extends BasePermissionWsTest<AddGroupT
 
     newRequest(ANYONE, template.getUuid(), CODEVIEWER);
 
-    assertThat(getGroupNamesInTemplateAndPermission(template.getId(), CODEVIEWER)).containsExactly(ANYONE);
+    assertThat(getGroupNamesInTemplateAndPermission(template, CODEVIEWER)).containsExactly(ANYONE);
   }
 
   @Test
@@ -205,9 +205,9 @@ public class AddGroupToTemplateActionTest extends BasePermissionWsTest<AddGroupT
     request.execute();
   }
 
-  private List<String> getGroupNamesInTemplateAndPermission(long templateId, String permission) {
+  private List<String> getGroupNamesInTemplateAndPermission(PermissionTemplateDto template, String permission) {
     PermissionQuery query = PermissionQuery.builder().setPermission(permission).build();
     return db.getDbClient().permissionTemplateDao()
-      .selectGroupNamesByQueryAndTemplate(db.getSession(), query, templateId);
+      .selectGroupNamesByQueryAndTemplate(db.getSession(), query, template.getOrganizationUuid(), template.getId());
   }
 }
index d1c018216b1d40e8ab5dec46d49b743c4af1c2ad..4141a091c3421e309660efde2b32e8ae9255adfd 100644 (file)
@@ -69,7 +69,7 @@ public class RemoveGroupFromTemplateActionTest extends BasePermissionWsTest<Remo
   public void remove_group_from_template() throws Exception {
     newRequest(group.getName(), template.getUuid(), PERMISSION);
 
-    assertThat(getGroupNamesInTemplateAndPermission(template.getId(), PERMISSION)).isEmpty();
+    assertThat(getGroupNamesInTemplateAndPermission(template, PERMISSION)).isEmpty();
   }
 
   @Test
@@ -80,7 +80,7 @@ public class RemoveGroupFromTemplateActionTest extends BasePermissionWsTest<Remo
       .setParam(PARAM_TEMPLATE_NAME, template.getName().toUpperCase())
       .execute();
 
-    assertThat(getGroupNamesInTemplateAndPermission(template.getId(), PERMISSION)).isEmpty();
+    assertThat(getGroupNamesInTemplateAndPermission(template, PERMISSION)).isEmpty();
   }
 
   @Test
@@ -91,7 +91,7 @@ public class RemoveGroupFromTemplateActionTest extends BasePermissionWsTest<Remo
       .setParam(PARAM_GROUP_ID, String.valueOf(group.getId()))
       .execute();
 
-    assertThat(getGroupNamesInTemplateAndPermission(template.getId(), PERMISSION)).isEmpty();
+    assertThat(getGroupNamesInTemplateAndPermission(template, PERMISSION)).isEmpty();
   }
 
   @Test
@@ -99,7 +99,7 @@ public class RemoveGroupFromTemplateActionTest extends BasePermissionWsTest<Remo
     newRequest(group.getName(), template.getUuid(), PERMISSION);
     newRequest(group.getName(), template.getUuid(), PERMISSION);
 
-    assertThat(getGroupNamesInTemplateAndPermission(template.getId(), PERMISSION)).isEmpty();
+    assertThat(getGroupNamesInTemplateAndPermission(template, PERMISSION)).isEmpty();
   }
 
   @Test
@@ -108,7 +108,7 @@ public class RemoveGroupFromTemplateActionTest extends BasePermissionWsTest<Remo
 
     newRequest(ANYONE, template.getUuid(), PERMISSION);
 
-    assertThat(getGroupNamesInTemplateAndPermission(template.getId(), PERMISSION)).containsExactly(group.getName());
+    assertThat(getGroupNamesInTemplateAndPermission(template, PERMISSION)).containsExactly(group.getName());
   }
 
   @Test
@@ -192,9 +192,9 @@ public class RemoveGroupFromTemplateActionTest extends BasePermissionWsTest<Remo
     db.commit();
   }
 
-  private List<String> getGroupNamesInTemplateAndPermission(long templateId, String permission) {
+  private List<String> getGroupNamesInTemplateAndPermission(PermissionTemplateDto template, String permission) {
     PermissionQuery permissionQuery = PermissionQuery.builder().setPermission(permission).build();
     return db.getDbClient().permissionTemplateDao()
-      .selectGroupNamesByQueryAndTemplate(db.getSession(), permissionQuery, templateId);
+      .selectGroupNamesByQueryAndTemplate(db.getSession(), permissionQuery, template.getOrganizationUuid(), template.getId());
   }
 }
index 6419daa9f3c777fa48b0bb77e1bcc84583a8cf7f..420388766576f4d77e55a69c1f40d4d5e2c11ff5 100644 (file)
@@ -83,6 +83,29 @@ public class TemplateGroupsActionTest extends BasePermissionWsTest<TemplateGroup
       .isSimilarTo(getClass().getResource("template_groups-example.json"));
   }
 
+  @Test
+  public void do_not_fail_when_group_name_exists_in_multiple_organizations() {
+    PermissionTemplateDto template = addTemplateToDefaultOrganization();
+
+    String groupName = "group-name";
+    GroupDto group1 = db.users().insertGroup(db.getDefaultOrganization(), groupName);
+    addGroupToTemplate(newPermissionTemplateGroup(CODEVIEWER, template.getId(), group1.getId()));
+    addGroupToTemplate(newPermissionTemplateGroup(ADMIN, template.getId(), group1.getId()));
+
+    OrganizationDto otherOrganization = db.organizations().insert();
+    db.users().insertGroup(otherOrganization, groupName);
+
+    loginAsAdminOnDefaultOrganization();
+
+    newRequest()
+        .setMediaType(PROTOBUF)
+        .setParam(PARAM_TEMPLATE_ID, template.getUuid())
+        .setParam(TEXT_QUERY, "-nam")
+        .execute()
+        .getInputStream();
+
+  }
+
   @Test
   public void return_all_permissions_of_matching_groups() throws Exception {
     PermissionTemplateDto template = addTemplateToDefaultOrganization();
index ac6bb49fefde057d293d66c8dd6c335c2ec128d1..d9784e57c3424c5440fe32b926ff0213604bd5be 100644 (file)
@@ -69,16 +69,12 @@ public class PermissionTemplateDao implements Dao {
     return mapper(dbSession).selectUserPermissionsByTemplateIdAndUserLogins(templateId, Collections.emptyList());
   }
 
-  /**
-   * @deprecated does not support organizations. Should return group ids.
-   */
-  @Deprecated
-  public List<String> selectGroupNamesByQueryAndTemplate(DbSession session, PermissionQuery query, long templateId) {
-    return mapper(session).selectGroupNamesByQueryAndTemplate(query, templateId, new RowBounds(query.getPageOffset(), query.getPageSize()));
+  public List<String> selectGroupNamesByQueryAndTemplate(DbSession session, PermissionQuery query, String organizationUuid, long templateId) {
+    return mapper(session).selectGroupNamesByQueryAndTemplate(organizationUuid, templateId, query, new RowBounds(query.getPageOffset(), query.getPageSize()));
   }
 
-  public int countGroupNamesByQueryAndTemplate(DbSession session, PermissionQuery query, long templateId) {
-    return mapper(session).countGroupNamesByQueryAndTemplate(query, templateId);
+  public int countGroupNamesByQueryAndTemplate(DbSession session, PermissionQuery query, String organizationUuid, long templateId) {
+    return mapper(session).countGroupNamesByQueryAndTemplate(organizationUuid, query, templateId);
   }
 
   public List<PermissionTemplateGroupDto> selectGroupPermissionsByTemplateIdAndGroupNames(DbSession dbSession, long templateId, List<String> groups) {
index 55b3d2569ecd3d0aa1bd8e78017e493b980c3215..2f58d738e6672178238670c3660d726a32cba4fc 100644 (file)
@@ -47,7 +47,7 @@ public interface PermissionTemplateMapper {
   void deleteUserPermission(PermissionTemplateUserDto permissionTemplateUser);
 
   void deleteGroupPermissionsByTemplateId(long templateId);
-  
+
   void deleteGroupPermissionsByTemplateIds(@Param("templateIds") List<Long> templateIds);
 
   void deleteGroupPermission(PermissionTemplateGroupDto permissionTemplateGroup);
@@ -70,9 +70,10 @@ public interface PermissionTemplateMapper {
 
   int countUserLoginsByQueryAndTemplate(@Param("query") PermissionQuery query, @Param("templateId") long templateId);
 
-  List<String> selectGroupNamesByQueryAndTemplate(@Param("query") PermissionQuery query, @Param("templateId") long templateId, RowBounds rowBounds);
+  List<String> selectGroupNamesByQueryAndTemplate(@Param("organizationUuid") String organizationUuid,
+    @Param("templateId") long templateId, @Param("query") PermissionQuery query, RowBounds rowBounds);
 
-  int countGroupNamesByQueryAndTemplate(@Param("query") PermissionQuery query, @Param("templateId") long templateId);
+  int countGroupNamesByQueryAndTemplate(@Param("organizationUuid") String organizationUuid, @Param("query") PermissionQuery query, @Param("templateId") long templateId);
 
   List<PermissionTemplateDto> selectAll(@Param("organizationUuid") String organizationUuid, @Nullable @Param("upperCaseNameLikeSql") String upperCaseNameLikeSql);
 
index 0001f3e18f49a38af573c943a59a95edfed4f8a5..fa79c9a5addcd9a1bbda8a10905f9ade48e15b34 100644 (file)
 
   <sql id="groupNamesByQueryAndTemplate">
     FROM
-    (SELECT g.id AS group_id, g.name AS name, ptg.permission_reference AS permission, ptg.template_id AS templateId
+    (SELECT
+      g.id AS group_id,
+      g.name AS name,
+      ptg.permission_reference AS permission,
+      ptg.template_id AS templateId
     FROM groups g
-    LEFT JOIN perm_templates_groups ptg ON ptg.group_id=g.id
+    LEFT JOIN perm_templates_groups ptg ON
+      ptg.group_id=g.id
+    where
+      g.organization_uuid=#{organizationUuid,jdbcType=VARCHAR}
     UNION ALL
-    SELECT 0 AS group_id, 'Anyone' AS name, ptg.permission_reference AS permission, ptg.template_id AS templateId
+    SELECT
+      0 AS group_id,
+      'Anyone' AS name,
+      ptg.permission_reference AS permission,
+      ptg.template_id AS templateId
     FROM perm_templates_groups ptg
     <where>
       <if test="query.withAtLeastOnePermission()">
         g.name AS groupName,
         ptg.created_at as createdAt,
         ptg.updated_at as updatedAt
-        FROM perm_templates_groups ptg
-      INNER JOIN groups g ON g.id=ptg.group_id
+      FROM perm_templates_groups ptg
+      INNER JOIN groups g ON
+        g.id=ptg.group_id
       UNION ALL
         SELECT
           ptg.id,
index 6cf5abc3adc6cad7c21398f5d205e395f8783c4a..1c1977147195f8e4f2f57b06d14348c54b6c5632 100644 (file)
@@ -27,6 +27,7 @@ import org.junit.Test;
 import org.sonar.api.utils.System2;
 import org.sonar.db.DbSession;
 import org.sonar.db.DbTester;
+import org.sonar.db.organization.OrganizationDto;
 import org.sonar.db.permission.PermissionQuery;
 import org.sonar.db.user.GroupDto;
 
@@ -43,95 +44,122 @@ public class GroupWithPermissionTemplateDaoTest {
 
   @Rule
   public DbTester db = DbTester.create(System2.INSTANCE);
+
   private DbSession session = db.getSession();
   private PermissionTemplateDbTester permissionTemplateDbTester = db.permissionTemplates();
   private PermissionTemplateDao underTest = db.getDbClient().permissionTemplateDao();
 
   @Test
   public void select_group_names_by_query_and_template() {
-    GroupDto group1 = db.users().insertGroup(newGroupDto().setName("Group-1"));
-    GroupDto group2 = db.users().insertGroup(newGroupDto().setName("Group-2"));
-    GroupDto group3 = db.users().insertGroup(newGroupDto().setName("Group-3"));
+    OrganizationDto organization = db.organizations().insert();
+    GroupDto group1 = db.users().insertGroup(organization, "Group-1");
+    GroupDto group2 = db.users().insertGroup(organization, "Group-2");
+    GroupDto group3 = db.users().insertGroup(organization, "Group-3");
 
-    PermissionTemplateDto template = permissionTemplateDbTester.insertTemplate();
+    PermissionTemplateDto template = permissionTemplateDbTester.insertTemplate(organization);
     permissionTemplateDbTester.addGroupToTemplate(template.getId(), group1.getId(), USER);
     permissionTemplateDbTester.addGroupToTemplate(template.getId(), group1.getId(), ADMIN);
     permissionTemplateDbTester.addGroupToTemplate(template.getId(), group2.getId(), PROVISIONING);
 
-    PermissionTemplateDto anotherTemplate = permissionTemplateDbTester.insertTemplate();
+    PermissionTemplateDto anotherTemplate = permissionTemplateDbTester.insertTemplate(organization);
     permissionTemplateDbTester.addGroupToTemplate(anotherTemplate.getId(), null, USER);
     permissionTemplateDbTester.addGroupToTemplate(anotherTemplate.getId(), group1.getId(), PROVISIONING);
 
-    assertThat(selectGroupNamesByQueryAndTemplate(builder().build(), template.getId())).containsOnly("Group-1", "Group-2", "Group-3", "Anyone");
-    assertThat(selectGroupNamesByQueryAndTemplate(builder().withAtLeastOnePermission().build(), template.getId())).containsOnly("Group-1", "Group-2");
-    assertThat(selectGroupNamesByQueryAndTemplate(builder().setPermission(USER).build(), template.getId())).containsOnly("Group-1");
-    assertThat(selectGroupNamesByQueryAndTemplate(builder().setPermission(USER).build(), anotherTemplate.getId())).containsOnly("Anyone");
-    assertThat(selectGroupNamesByQueryAndTemplate(builder().setSearchQuery("groU").build(), template.getId())).containsOnly("Group-1", "Group-2", "Group-3");
-    assertThat(selectGroupNamesByQueryAndTemplate(builder().setSearchQuery("nYo").build(), template.getId())).containsOnly("Anyone");
-    assertThat(selectGroupNamesByQueryAndTemplate(builder().setSearchQuery("p-2").build(), template.getId())).containsOnly("Group-2");
-
-    assertThat(selectGroupNamesByQueryAndTemplate(builder().withAtLeastOnePermission().build(), 123L)).isEmpty();
-    assertThat(selectGroupNamesByQueryAndTemplate(builder().setSearchQuery("unknown").build(), template.getId())).isEmpty();
+    assertThat(selectGroupNamesByQueryAndTemplate(builder(), organization, template))
+      .containsOnly("Group-1", "Group-2", "Group-3", "Anyone");
+    assertThat(selectGroupNamesByQueryAndTemplate(builder().withAtLeastOnePermission(), organization, template))
+      .containsOnly("Group-1", "Group-2");
+    assertThat(selectGroupNamesByQueryAndTemplate(builder().setPermission(USER), organization, template))
+      .containsOnly("Group-1");
+    assertThat(selectGroupNamesByQueryAndTemplate(builder().setPermission(USER), organization, anotherTemplate))
+      .containsOnly("Anyone");
+    assertThat(selectGroupNamesByQueryAndTemplate(builder().setSearchQuery("groU"), organization, template))
+      .containsOnly("Group-1", "Group-2", "Group-3");
+    assertThat(selectGroupNamesByQueryAndTemplate(builder().setSearchQuery("nYo"), organization, template))
+      .containsOnly("Anyone");
+    assertThat(selectGroupNamesByQueryAndTemplate(builder().setSearchQuery("p-2"), organization, template))
+      .containsOnly("Group-2");
+
+    assertThat(selectGroupNamesByQueryAndTemplate(builder().withAtLeastOnePermission().build(), organization, 123L))
+      .isEmpty();
+    assertThat(selectGroupNamesByQueryAndTemplate(builder().setSearchQuery("unknown"), organization, template))
+      .isEmpty();
   }
 
   @Test
   public void select_group_names_by_query_and_template_is_ordered_by_group_names() {
-    GroupDto group2 = db.users().insertGroup(newGroupDto().setName("Group-2"));
-    db.users().insertGroup(newGroupDto().setName("Group-3"));
-    db.users().insertGroup(newGroupDto().setName("Group-1"));
+    OrganizationDto organization = db.organizations().insert();
+    GroupDto group2 = db.users().insertGroup(organization, "Group-2");
+    db.users().insertGroup(organization, "Group-3");
+    db.users().insertGroup(organization, "Group-1");
 
-    PermissionTemplateDto template = permissionTemplateDbTester.insertTemplate();
+    PermissionTemplateDto template = permissionTemplateDbTester.insertTemplate(organization);
     permissionTemplateDbTester.addGroupToTemplate(template.getId(), group2.getId(), USER);
 
-    assertThat(selectGroupNamesByQueryAndTemplate(builder().build(), template.getId())).containsExactly("Anyone", "Group-1", "Group-2", "Group-3");
+    assertThat(selectGroupNamesByQueryAndTemplate(builder(), organization, template))
+      .containsExactly("Anyone", "Group-1", "Group-2", "Group-3");
   }
 
   @Test
   public void select_group_names_by_query_and_template_is_paginated() {
-    IntStream.rangeClosed(0, 9).forEach(i -> db.users().insertGroup(newGroupDto().setName(i + "-name")));
+    OrganizationDto organization = db.organizations().insert();
+    IntStream.rangeClosed(0, 9).forEach(i -> db.users().insertGroup(organization, i + "-name"));
 
-    PermissionTemplateDto template = permissionTemplateDbTester.insertTemplate();
+    PermissionTemplateDto template = permissionTemplateDbTester.insertTemplate(organization);
 
-    assertThat(selectGroupNamesByQueryAndTemplate(builder().setPageIndex(1).setPageSize(1).build(), template.getId())).containsExactly("0-name");
-    assertThat(selectGroupNamesByQueryAndTemplate(builder().setPageIndex(2).setPageSize(3).build(), template.getId())).containsExactly("3-name", "4-name", "5-name");
+    assertThat(selectGroupNamesByQueryAndTemplate(builder().setPageIndex(1).setPageSize(1), organization, template))
+      .containsExactly("0-name");
+    assertThat(selectGroupNamesByQueryAndTemplate(builder().setPageIndex(2).setPageSize(3), organization, template))
+      .containsExactly("3-name", "4-name", "5-name");
   }
 
   @Test
   public void select_group_names_by_query_and_template_returns_anyone() {
-    PermissionTemplateDto template = permissionTemplateDbTester.insertTemplate();
+    OrganizationDto organization = db.organizations().insert();
+    PermissionTemplateDto template = permissionTemplateDbTester.insertTemplate(organization);
 
     GroupDto group = db.users().insertGroup(newGroupDto().setName("Group"));
-    PermissionTemplateDto otherTemplate = permissionTemplateDbTester.insertTemplate();
+    PermissionTemplateDto otherTemplate = permissionTemplateDbTester.insertTemplate(organization);
     permissionTemplateDbTester.addGroupToTemplate(otherTemplate.getId(), group.getId(), USER);
 
-    assertThat(selectGroupNamesByQueryAndTemplate(builder().setSearchQuery("nyo").build(), template.getId())).containsExactly("Anyone");
+    assertThat(selectGroupNamesByQueryAndTemplate(builder().setSearchQuery("nyo"), organization, template))
+      .containsExactly("Anyone");
   }
 
   @Test
   public void count_group_names_by_query_and_template() {
-    GroupDto group1 = db.users().insertGroup(newGroupDto().setName("Group-1"));
-    GroupDto group2 = db.users().insertGroup(newGroupDto().setName("Group-2"));
-    GroupDto group3 = db.users().insertGroup(newGroupDto().setName("Group-3"));
+    OrganizationDto organization = db.organizations().insert();
+    GroupDto group1 = db.users().insertGroup(organization, "Group-1");
+    GroupDto group2 = db.users().insertGroup(organization, "Group-2");
+    GroupDto group3 = db.users().insertGroup(organization, "Group-3");
 
-    PermissionTemplateDto template = permissionTemplateDbTester.insertTemplate();
+    PermissionTemplateDto template = permissionTemplateDbTester.insertTemplate(organization);
     permissionTemplateDbTester.addGroupToTemplate(template.getId(), group1.getId(), USER);
     permissionTemplateDbTester.addGroupToTemplate(template.getId(), group1.getId(), ADMIN);
     permissionTemplateDbTester.addGroupToTemplate(template.getId(), group2.getId(), PROVISIONING);
 
-    PermissionTemplateDto anotherTemplate = permissionTemplateDbTester.insertTemplate();
+    PermissionTemplateDto anotherTemplate = permissionTemplateDbTester.insertTemplate(organization);
     permissionTemplateDbTester.addGroupToTemplate(anotherTemplate.getId(), null, USER);
     permissionTemplateDbTester.addGroupToTemplate(anotherTemplate.getId(), group1.getId(), PROVISIONING);
 
-    assertThat(countGroupNamesByQueryAndTemplate(builder().build(), template.getId())).isEqualTo(4);
-    assertThat(countGroupNamesByQueryAndTemplate(builder().withAtLeastOnePermission().build(), template.getId())).isEqualTo(2);
-    assertThat(countGroupNamesByQueryAndTemplate(builder().setPermission(USER).build(), template.getId())).isEqualTo(1);
-    assertThat(countGroupNamesByQueryAndTemplate(builder().setPermission(USER).build(), anotherTemplate.getId())).isEqualTo(1);
-    assertThat(countGroupNamesByQueryAndTemplate(builder().setSearchQuery("groU").build(), template.getId())).isEqualTo(3);
-    assertThat(countGroupNamesByQueryAndTemplate(builder().setSearchQuery("nYo").build(), template.getId())).isEqualTo(1);
-    assertThat(countGroupNamesByQueryAndTemplate(builder().setSearchQuery("p-2").build(), template.getId())).isEqualTo(1);
-
-    assertThat(countGroupNamesByQueryAndTemplate(builder().withAtLeastOnePermission().build(), 123L)).isZero();
-    assertThat(countGroupNamesByQueryAndTemplate(builder().setSearchQuery("unknown").build(), template.getId())).isZero();
+    assertThat(countGroupNamesByQueryAndTemplate(builder(), organization, template))
+      .isEqualTo(4);
+    assertThat(countGroupNamesByQueryAndTemplate(builder().withAtLeastOnePermission(), organization, template))
+      .isEqualTo(2);
+    assertThat(countGroupNamesByQueryAndTemplate(builder().setPermission(USER), organization, template)).isEqualTo(1);
+    assertThat(countGroupNamesByQueryAndTemplate(builder().setPermission(USER), organization, anotherTemplate))
+      .isEqualTo(1);
+    assertThat(countGroupNamesByQueryAndTemplate(builder().setSearchQuery("groU"), organization, template))
+      .isEqualTo(3);
+    assertThat(countGroupNamesByQueryAndTemplate(builder().setSearchQuery("nYo"), organization, template))
+      .isEqualTo(1);
+    assertThat(countGroupNamesByQueryAndTemplate(builder().setSearchQuery("p-2"), organization, template))
+      .isEqualTo(1);
+
+    assertThat(countGroupNamesByQueryAndTemplate(builder().withAtLeastOnePermission().build(), organization, 123L))
+      .isZero();
+    assertThat(countGroupNamesByQueryAndTemplate(builder().setSearchQuery("unknown"), organization, template))
+      .isZero();
   }
 
   @Test
@@ -200,12 +228,20 @@ public class GroupWithPermissionTemplateDaoTest {
     assertThat(underTest.selectGroupPermissionsByTemplateId(session, 321L)).isEmpty();
   }
 
-  private List<String> selectGroupNamesByQueryAndTemplate(PermissionQuery query, long templateId) {
-    return underTest.selectGroupNamesByQueryAndTemplate(session, query, templateId);
+  private List<String> selectGroupNamesByQueryAndTemplate(PermissionQuery.Builder queryBuilder, OrganizationDto organization, PermissionTemplateDto permissionTemplateDto) {
+    return selectGroupNamesByQueryAndTemplate(queryBuilder.build(), organization, permissionTemplateDto.getId());
+  }
+
+  private List<String> selectGroupNamesByQueryAndTemplate(PermissionQuery query, OrganizationDto organization, long templateId) {
+    return underTest.selectGroupNamesByQueryAndTemplate(session, query, organization.getUuid(), templateId);
+  }
+
+  private int countGroupNamesByQueryAndTemplate(PermissionQuery.Builder queryBuilder, OrganizationDto organization, PermissionTemplateDto permissionTemplateDto) {
+    return countGroupNamesByQueryAndTemplate(queryBuilder.build(), organization, permissionTemplateDto.getId());
   }
 
-  private int countGroupNamesByQueryAndTemplate(PermissionQuery query, long templateId) {
-    return underTest.countGroupNamesByQueryAndTemplate(session, query, templateId);
+  private int countGroupNamesByQueryAndTemplate(PermissionQuery query, OrganizationDto organization, long templateId) {
+    return underTest.countGroupNamesByQueryAndTemplate(session, query, organization.getUuid(), templateId);
   }
 
 }