private boolean isUserAlreadyAdded(DbSession dbSession, OrganizationDto organizationDto, long templateId, String userLogin, String permission) { PermissionQuery permissionQuery = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).setPermission(permission).build(); List<String> usersWithPermission = dbClient.permissionTemplateDao().selectUserLoginsByQueryAndTemplate(dbSession, permissionQuery, templateId); return usersWithPermission.stream().anyMatch(s -> s.equals(userLogin)); }
@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 selectGroupNamesByQuery_with_global_permission() { OrganizationDto organizationDto = db.organizations().insert(); GroupDto group1 = db.users().insertGroup(organizationDto, "Group-1"); GroupDto group2 = db.users().insertGroup(organizationDto, "Group-2"); GroupDto group3 = db.users().insertGroup(organizationDto, "Group-3"); ComponentDto project = db.components().insertComponent(ComponentTesting.newPrivateProjectDto(organizationDto)); db.users().insertPermissionOnAnyone(organizationDto, SCAN); db.users().insertPermissionOnAnyone(organizationDto, PROVISION_PROJECTS); db.users().insertPermissionOnGroup(group1, SCAN); db.users().insertPermissionOnGroup(group3, ADMINISTER); db.users().insertProjectPermissionOnGroup(group2, UserRole.ADMIN, project); assertThat(underTest.selectGroupNamesByQuery(dbSession, newQuery().setOrganizationUuid(organizationDto.getUuid()).setPermission(SCAN.getKey()).build())).containsExactly(ANYONE, group1.getName()); assertThat(underTest.selectGroupNamesByQuery(dbSession, newQuery().setOrganizationUuid(organizationDto.getUuid()).setPermission(ADMINISTER.getKey()).build())).containsExactly(group3.getName()); assertThat(underTest.selectGroupNamesByQuery(dbSession, newQuery().setOrganizationUuid(organizationDto.getUuid()).setPermission(PROVISION_PROJECTS.getKey()).build())).containsExactly(ANYONE); }
@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); }
@Test public void count_users() { OrganizationDto organization = db.organizations().insert(); UserDto user1 = db.users().insertUser(); UserDto user2 = db.users().insertUser(); UserDto user3 = db.users().insertUser(); 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.countUserLoginsByQueryAndTemplate(dbSession, builder().setOrganizationUuid(organization.getUuid()).build(), permissionTemplate.getId())) .isEqualTo(3); assertThat(underTest.countUserLoginsByQueryAndTemplate(dbSession, builder().setOrganizationUuid(organization.getUuid()).withAtLeastOnePermission().setPermission("user").build(), permissionTemplate.getId())) .isEqualTo(2); }
private List<String> selectProjectPermissionGroups(ComponentDto project, String permission) { PermissionQuery query = PermissionQuery.builder().setOrganizationUuid(project.getOrganizationUuid()).setPermission(permission).setComponentUuid(project.uuid()).build(); return db.getDbClient().groupPermissionDao().selectGroupNamesByQuery(db.getSession(), query); }
@Test public void select_only_enable_users() { OrganizationDto organization = db.organizations().insert(); UserDto user = db.users().insertUser(); UserDto disabledUser = db.users().insertUser(u -> u.setActive(false)); db.organizations().addMember(organization, user, disabledUser); PermissionTemplateDto permissionTemplate = db.permissionTemplates().insertTemplate(); db.permissionTemplates().addUserToTemplate(permissionTemplate, user, USER); db.permissionTemplates().addUserToTemplate(permissionTemplate, disabledUser, USER); assertThat(underTest.selectUserLoginsByQueryAndTemplate(dbSession, builder().setOrganizationUuid(organization.getUuid()).setPermission(USER).build(), permissionTemplate.getId())) .containsExactlyInAnyOrder(user.getLogin()); }
private List<String> selectProjectPermissionGroups(ComponentDto project, String permission) { PermissionQuery query = PermissionQuery.builder().setOrganizationUuid(project.getOrganizationUuid()).setPermission(permission).setComponentUuid(project.uuid()).build(); return db.getDbClient().groupPermissionDao().selectGroupNamesByQuery(db.getSession(), query); }
private int countGroups(DbSession dbSession, OrganizationDto org, String permission) { PermissionQuery query = PermissionQuery.builder().setOrganizationUuid(org.getUuid()).setPermission(permission).build(); return dbClient.groupPermissionDao().countGroupsByQuery(dbSession, query); }
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(); }
private static PermissionQuery permissionQuery(String permissionKey, OrganizationDto org) { return PermissionQuery.builder() .setOrganizationUuid(org.getUuid()) .setPermission(permissionKey) .withAtLeastOnePermission() .build(); } }
private List<String> getGroupNamesInTemplateAndPermission(PermissionTemplateDto template, String permission) { PermissionQuery permissionQuery = PermissionQuery.builder().setOrganizationUuid(template.getOrganizationUuid()).setPermission(permission).build(); return db.getDbClient().permissionTemplateDao() .selectGroupNamesByQueryAndTemplate(db.getSession(), permissionQuery, template.getId()); } }
@Test public void return_no_logins_on_unknown_template_key() { OrganizationDto organization = db.organizations().insert(); UserDto user = db.users().insertUser(); db.organizations().addMember(organization, user); PermissionTemplateDto permissionTemplate = db.permissionTemplates().insertTemplate(); db.permissionTemplates().addUserToTemplate(permissionTemplate, user, USER); assertThat(underTest.selectUserLoginsByQueryAndTemplate(dbSession, builder().setOrganizationUuid(organization.getUuid()).setPermission(USER).withAtLeastOnePermission().build(), 999L)) .isEmpty(); }
private List<Integer> selectProjectPermissionUsers(ComponentDto project, String permission) { PermissionQuery query = PermissionQuery.builder().setOrganizationUuid(project.getOrganizationUuid()).setPermission(permission).setComponentUuid(project.uuid()).build(); return db.getDbClient().userPermissionDao().selectUserIdsByQuery(db.getSession(), query); } }
private List<Integer> selectProjectPermissionUsers(ComponentDto project, String permission) { PermissionQuery query = PermissionQuery.builder().setOrganizationUuid(project.getOrganizationUuid()).setPermission(permission).setComponentUuid(project.uuid()).build(); return db.getDbClient().userPermissionDao().selectUserIdsByQuery(db.getSession(), query); } }
private List<String> getLoginsInTemplateAndPermission(PermissionTemplateDto template, String permission) { PermissionQuery permissionQuery = PermissionQuery.builder().setOrganizationUuid(template.getOrganizationUuid()).setPermission(permission).build(); return db.getDbClient().permissionTemplateDao() .selectUserLoginsByQueryAndTemplate(db.getSession(), permissionQuery, template.getId()); }
private List<String> getGroupNamesInTemplateAndPermission(PermissionTemplateDto template, String permission) { PermissionQuery query = PermissionQuery.builder().setOrganizationUuid(template.getOrganizationUuid()).setPermission(permission).build(); return db.getDbClient().permissionTemplateDao() .selectGroupNamesByQueryAndTemplate(db.getSession(), query, template.getId()); } }
private List<String> getLoginsInTemplateAndPermission(PermissionTemplateDto template, String permission) { PermissionQuery permissionQuery = PermissionQuery.builder().setOrganizationUuid(template.getOrganizationUuid()).setPermission(permission).build(); return db.getDbClient().permissionTemplateDao() .selectUserLoginsByQueryAndTemplate(db.getSession(), permissionQuery, template.getId()); }
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(); }