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); }
@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); }
@Override public void handle(Request request, Response response) throws Exception { try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto org = wsSupport.findOrganization(dbSession, request.param(PARAM_ORGANIZATION)); Optional<ProjectId> projectId = wsSupport.findProjectId(dbSession, request); checkProjectAdmin(userSession, org.getUuid(), projectId); PermissionQuery query = buildPermissionQuery(request, org, projectId); // TODO validatePermission(groupsRequest.getPermission(), wsProjectRef); List<GroupDto> groups = findGroups(dbSession, org, query); int total = dbClient.groupPermissionDao().countGroupsByQuery(dbSession, query); List<GroupPermissionDto> groupsWithPermission = findGroupPermissions(dbSession, org, groups, projectId); Paging paging = Paging.forPageIndex(request.mandatoryParamAsInt(Param.PAGE)).withPageSize(query.getPageSize()).andTotal(total); WsGroupsResponse groupsResponse = buildResponse(groups, groupsWithPermission, paging); writeProtobuf(groupsResponse, request, response); } }
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); }
@Override public void handle(Request request, Response response) throws Exception { try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto org = support.findOrganization(dbSession, request.param(PARAM_ORGANIZATION)); Optional<ProjectId> projectId = support.findProjectId(dbSession, request); checkProjectAdmin(userSession, org.getUuid(), projectId); PermissionQuery query = buildPermissionQuery(request, org, projectId); // TODO validatePermission(groupsRequest.getPermission(), wsProjectRef); List<GroupDto> groups = findGroups(dbSession, org, query); int total = dbClient.groupPermissionDao().countGroupsByQuery(dbSession, query); List<GroupPermissionDto> groupsWithPermission = findGroupPermissions(dbSession, org, groups, projectId); Paging paging = Paging.forPageIndex(request.mandatoryParamAsInt(Param.PAGE)).withPageSize(query.getPageSize()).andTotal(total); WsGroupsResponse groupsResponse = buildResponse(groups, groupsWithPermission, paging); writeProtobuf(groupsResponse, request, response); } }