@Test public void create_query() { PermissionQuery quey = PermissionQuery.builder() .setComponentUuid("COMPONENT_UUID") .setOrganizationUuid("ORGANIZATION_UUID") .setPermission("user") .setSearchQuery("sonar") .build(); assertThat(quey.getComponentUuid()).isEqualTo("COMPONENT_UUID"); assertThat(quey.getOrganizationUuid()).isEqualTo("ORGANIZATION_UUID"); assertThat(quey.getPermission()).isEqualTo("user"); assertThat(quey.getSearchQuery()).isEqualTo("sonar"); }
private static PermissionQuery buildPermissionQuery(Request request, OrganizationDto org, Optional<ProjectId> project) { String textQuery = request.param(Param.TEXT_QUERY); PermissionQuery.Builder permissionQuery = PermissionQuery.builder() .setOrganizationUuid(org.getUuid()) .setPermission(request.param(PARAM_PERMISSION)) .setPageIndex(request.mandatoryParamAsInt(Param.PAGE)) .setPageSize(request.mandatoryParamAsInt(Param.PAGE_SIZE)) .setSearchQuery(textQuery); if (project.isPresent()) { permissionQuery.setComponentUuid(project.get().getUuid()); } return permissionQuery.build(); }
@Test public void countGroupsByQuery() { OrganizationDto organizationDto = db.getDefaultOrganization(); GroupDto group1 = db.users().insertGroup(organizationDto, "Group-1"); db.users().insertGroup(organizationDto, "Group-2"); db.users().insertGroup(organizationDto, "Group-3"); db.users().insertPermissionOnAnyone(organizationDto, SCAN); db.users().insertPermissionOnGroup(group1, PROVISION_PROJECTS); assertThat(underTest.countGroupsByQuery(dbSession, newQuery().build())).isEqualTo(4); assertThat(underTest.countGroupsByQuery(dbSession, newQuery().setPermission(PROVISION_PROJECTS.getKey()).build())).isEqualTo(1); assertThat(underTest.countGroupsByQuery(dbSession, newQuery().withAtLeastOnePermission().build())).isEqualTo(2); assertThat(underTest.countGroupsByQuery(dbSession, newQuery().setSearchQuery("Group-").build())).isEqualTo(3); assertThat(underTest.countGroupsByQuery(dbSession, newQuery().setSearchQuery("Any").build())).isEqualTo(1); }
private static PermissionQuery buildPermissionQuery(Request request, OrganizationDto organization, Optional<ProjectId> project) { String textQuery = request.param(Param.TEXT_QUERY); String permission = request.param(PARAM_PERMISSION); PermissionQuery.Builder permissionQuery = PermissionQuery.builder() .setOrganizationUuid(organization.getUuid()) .setPermission(permission) .setPageIndex(request.mandatoryParamAsInt(Param.PAGE)) .setPageSize(request.mandatoryParamAsInt(Param.PAGE_SIZE)) .setSearchQuery(textQuery); project.ifPresent(projectId -> permissionQuery.setComponentUuid(projectId.getUuid())); if (permission != null) { if (project.isPresent()) { validateProjectPermission(permission); } else { validateGlobalPermission(permission); } } if (textQuery == null) { permissionQuery.withAtLeastOnePermission(); } return permissionQuery.build(); }
private static PermissionQuery buildPermissionQuery(Request request, OrganizationDto org, Optional<ProjectId> project) { String textQuery = request.param(Param.TEXT_QUERY); PermissionQuery.Builder permissionQuery = PermissionQuery.builder() .setOrganizationUuid(org.getUuid()) .setPermission(request.param(PARAM_PERMISSION)) .setPageIndex(request.mandatoryParamAsInt(Param.PAGE)) .setPageSize(request.mandatoryParamAsInt(Param.PAGE_SIZE)) .setSearchQuery(textQuery); if (project.isPresent()) { permissionQuery.setComponentUuid(project.get().getUuid()); } if (textQuery == null) { permissionQuery.withAtLeastOnePermission(); } return permissionQuery.build(); }
private static PermissionQuery buildQuery(Request wsRequest, PermissionTemplateDto template) { String textQuery = wsRequest.param(TEXT_QUERY); String permission = wsRequest.param(PARAM_PERMISSION); PermissionQuery.Builder query = PermissionQuery.builder() .setOrganizationUuid(template.getOrganizationUuid()) .setTemplate(template.getUuid()) .setPermission(permission != null ? validateProjectPermission(permission) : null) .setPageIndex(wsRequest.mandatoryParamAsInt(PAGE)) .setPageSize(wsRequest.mandatoryParamAsInt(PAGE_SIZE)) .setSearchQuery(textQuery); if (textQuery == null) { query.withAtLeastOnePermission(); } return query.build(); }
private static PermissionQuery buildPermissionQuery(Request request, PermissionTemplateDto template) { String textQuery = request.param(TEXT_QUERY); String permission = request.param(PARAM_PERMISSION); PermissionQuery.Builder permissionQuery = PermissionQuery.builder() .setOrganizationUuid(template.getOrganizationUuid()) .setPermission(permission != null ? validateProjectPermission(permission) : null) .setPageIndex(request.mandatoryParamAsInt(PAGE)) .setPageSize(request.mandatoryParamAsInt(PAGE_SIZE)) .setSearchQuery(textQuery); if (textQuery == null) { permissionQuery.withAtLeastOnePermission(); } return permissionQuery.build(); }
query = PermissionQuery.builder().setOrganizationUuid(organization.getUuid()).withAtLeastOnePermission().setSearchQuery("mari").build(); expectPermissions(query, asList(user2.getId(), user1.getId()), global2, global3, global1); query = PermissionQuery.builder().setOrganizationUuid(organization.getUuid()).withAtLeastOnePermission().setSearchQuery("ogin2").build(); expectPermissions(query, singletonList(user2.getId()), global2, global3); query = PermissionQuery.builder().setOrganizationUuid(organization.getUuid()).withAtLeastOnePermission().setSearchQuery("mail2").build(); expectPermissions(query, singletonList(user2.getId()), global2, global3); query = PermissionQuery.builder().setOrganizationUuid(organization.getUuid()).setSearchQuery("Mari").setPermission(PROVISIONING).build(); expectPermissions(query, singletonList(user2.getId()), global3); query = PermissionQuery.builder().setOrganizationUuid(organization.getUuid()).setSearchQuery("Unknown").build(); expectPermissions(query, emptyList());
query = PermissionQuery.builder().setOrganizationUuid(organization.getUuid()).setSearchQuery("Mari").withAtLeastOnePermission().setComponentUuid(project1.uuid()).build(); expectPermissions(query, asList(user2.getId(), user1.getId()), perm3, perm2, perm1); query = PermissionQuery.builder().setOrganizationUuid(organization.getUuid()).setSearchQuery("Mari").setPermission(ISSUE_ADMIN).setComponentUuid(project1.uuid()).build(); expectPermissions(query, asList(user2.getId(), user1.getId()), perm3, perm2); query = PermissionQuery.builder().setOrganizationUuid(organization.getUuid()).setSearchQuery("Unknown").setComponentUuid(project1.uuid()).build(); expectPermissions(query, emptyList());
query = PermissionQuery.builder().setOrganizationUuid(org1.getUuid()).setSearchQuery("mar").build(); assertThat(underTest.selectUserIdsByQuery(dbSession, query)).containsExactly(user2.getId(), user1.getId()); query = PermissionQuery.builder().setOrganizationUuid(org1.getUuid()).setSearchQuery("mariu").build(); assertThat(underTest.selectUserIdsByQuery(dbSession, query)).containsExactly(user1.getId()); query = PermissionQuery.builder().setOrganizationUuid(org1.getUuid()).setSearchQuery("mariu").setComponentUuid(project1.uuid()).build(); assertThat(underTest.selectUserIdsByQuery(dbSession, query)).containsExactly(user1.getId()); query = PermissionQuery.builder().setOrganizationUuid("missingOrg").setSearchQuery("mariu").build(); assertThat(underTest.selectUserIdsByQuery(dbSession, query)).isEmpty();
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().setSearchQuery("unknown"), organization, template)) .isEmpty();
assertThat(countGroupNamesByQueryAndTemplate(builder().setOrganizationUuid(organization.getUuid()).setPermission(USER), organization, anotherTemplate)) .isEqualTo(1); assertThat(countGroupNamesByQueryAndTemplate(builder().setOrganizationUuid(organization.getUuid()).setSearchQuery("groU"), organization, template)) .isEqualTo(3); assertThat(countGroupNamesByQueryAndTemplate(builder().setOrganizationUuid(organization.getUuid()).setSearchQuery("nYo"), organization, template)) .isEqualTo(1); assertThat(countGroupNamesByQueryAndTemplate(builder().setOrganizationUuid(organization.getUuid()).setSearchQuery("p-2"), organization, template)) .isEqualTo(1); assertThat(countGroupNamesByQueryAndTemplate(builder().setOrganizationUuid(organization.getUuid()).setSearchQuery("unknown"), organization, template)) .isZero();
@Test public void search_by_user_name() { OrganizationDto organization = db.organizations().insert(); UserDto user1 = db.users().insertUser(u -> u.setName("User1")); UserDto user2 = db.users().insertUser(u -> u.setName("User2")); UserDto user3 = db.users().insertUser(u -> u.setName("User3")); db.organizations().addMember(organization, user1, user2, user3); PermissionTemplateDto permissionTemplate = db.permissionTemplates().insertTemplate(); db.permissionTemplates().addUserToTemplate(permissionTemplate, user1, USER); db.permissionTemplates().addUserToTemplate(permissionTemplate, user2, USER); assertThat(underTest.selectUserLoginsByQueryAndTemplate( dbSession, builder().setOrganizationUuid(organization.getUuid()).withAtLeastOnePermission().setPermission(USER).setSearchQuery("SEr1").build(), permissionTemplate.getId())) .containsExactlyInAnyOrder(user1.getLogin()); assertThat(underTest.selectUserLoginsByQueryAndTemplate( dbSession, builder().setOrganizationUuid(organization.getUuid()).withAtLeastOnePermission().setPermission(USER).setSearchQuery("user").build(), permissionTemplate.getId())) .containsExactlyInAnyOrder(user1.getLogin(), user2.getLogin()); }
private PermissionQuery buildPermissionQuery(Request request, OrganizationDto organization, Optional<ProjectId> project) { String textQuery = request.param(Param.TEXT_QUERY); String permission = request.param(PARAM_PERMISSION); PermissionQuery.Builder permissionQuery = PermissionQuery.builder() .setOrganizationUuid(organization.getUuid()) .setPermission(permission) .setPageIndex(request.mandatoryParamAsInt(Param.PAGE)) .setPageSize(request.mandatoryParamAsInt(Param.PAGE_SIZE)) .setSearchQuery(textQuery); project.ifPresent(projectId -> permissionQuery.setComponentUuid(projectId.getUuid())); if (permission != null) { if (project.isPresent()) { requestValidator.validateProjectPermission(permission); } else { validateGlobalPermission(permission); } } return permissionQuery.build(); }
private PermissionQuery buildPermissionQuery(Request request, PermissionTemplateDto template) { String textQuery = request.param(TEXT_QUERY); String permission = request.param(PARAM_PERMISSION); PermissionQuery.Builder permissionQuery = PermissionQuery.builder() .setOrganizationUuid(template.getOrganizationUuid()) .setPermission(permission != null ? requestValidator.validateProjectPermission(permission) : null) .setPageIndex(request.mandatoryParamAsInt(PAGE)) .setPageSize(request.mandatoryParamAsInt(PAGE_SIZE)) .setSearchQuery(textQuery); return permissionQuery.build(); }
@Test public void select_group_names_by_query_and_template_returns_anyone() { OrganizationDto organization = db.organizations().insert(); PermissionTemplateDto template = permissionTemplateDbTester.insertTemplate(organization); GroupDto group = db.users().insertGroup(newGroupDto().setName("Group")); PermissionTemplateDto otherTemplate = permissionTemplateDbTester.insertTemplate(organization); permissionTemplateDbTester.addGroupToTemplate(otherTemplate.getId(), group.getId(), USER); assertThat(selectGroupNamesByQueryAndTemplate(builder().setSearchQuery("nyo"), organization, template)) .containsExactly("Anyone"); }
@Test public void fail_when_search_query_length_is_less_than_3_characters() { expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("Search query should contains at least 3 characters"); PermissionQuery.builder() .setOrganizationUuid("ORGANIZATION_UUID") .setSearchQuery("so") .build(); } }
private PermissionQuery buildQuery(Request wsRequest, PermissionTemplateDto template) { String textQuery = wsRequest.param(TEXT_QUERY); String permission = wsRequest.param(PARAM_PERMISSION); PermissionQuery.Builder query = PermissionQuery.builder() .setOrganizationUuid(template.getOrganizationUuid()) .setTemplate(template.getUuid()) .setPermission(permission != null ? requestValidator.validateProjectPermission(permission) : null) .setPageIndex(wsRequest.mandatoryParamAsInt(PAGE)) .setPageSize(wsRequest.mandatoryParamAsInt(PAGE_SIZE)) .setSearchQuery(textQuery); return query.build(); }
@Test public void selectGroupNamesByQuery_with_search_query() { GroupDto group = db.users().insertGroup(db.getDefaultOrganization(), "group-anyone"); db.users().insertGroup(db.getDefaultOrganization(), "unknown"); db.users().insertPermissionOnGroup(group, SCAN); assertThat(underTest.selectGroupNamesByQuery(dbSession, newQuery().setSearchQuery("any").build())).containsOnlyOnce(ANYONE, group.getName()); }