/** * search groups authorised to access the location. * * @return {@link RestResponse} that contains a {@link GetMultipleDataResult} of {@link GroupDTO}.. */ // TODO consider merging this with getAuthorizedGroups @ApiOperation(value = "List all groups authorized to access the location", notes = "Only user with ADMIN role can list authorized groups to the location.") @RequestMapping(value = "/groups/search", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @PreAuthorize("hasAuthority('ADMIN')") public RestResponse<GetMultipleDataResult<GroupDTO>> getAuthorizedGroupsPaginated(@PathVariable String orchestratorId, @PathVariable String locationId, @ApiParam(value = "Text Query to search.") @RequestParam(required = false) String query, @ApiParam(value = "Query from the given index.") @RequestParam(required = false, defaultValue = "0") int from, @ApiParam(value = "Maximum number of results to retrieve.") @RequestParam(required = false, defaultValue = "20") int size) { Location location = locationService.getLocation(orchestratorId, locationId); if (MapUtils.isEmpty(location.getGroupPermissions())) { return RestResponseBuilder.<GetMultipleDataResult<GroupDTO>> builder().data(new GetMultipleDataResult<>()).build(); } IdsFilterBuilder idFilters = FilterBuilders.idsFilter() .ids(location.getGroupPermissions().keySet().toArray(new String[location.getGroupPermissions().size()])); GetMultipleDataResult<Group> tempResult = alienGroupDao.find(query, from, size, idFilters); return RestResponseBuilder.<GetMultipleDataResult<GroupDTO>> builder().data(GroupDTO.convert(tempResult)).build(); }
/** * search users authorised to access the location. * * @return {@link RestResponse} that contains a {@link GetMultipleDataResult} of {@link UserDTO}.. */ // TODO consider merging this with getAuthorizedUsers @ApiOperation(value = "List all users authorized to access the location", notes = "Only user with ADMIN role can list authorized users to the location.") @RequestMapping(value = "/users/search", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @PreAuthorize("hasAuthority('ADMIN')") public RestResponse<GetMultipleDataResult<UserDTO>> getAuthorizedUsersPaginated(@PathVariable String orchestratorId, @PathVariable String locationId, @ApiParam(value = "Text Query to search.") @RequestParam(required = false) String query, @ApiParam(value = "Query from the given i*ndex.") @RequestParam(required = false, defaultValue = "0") int from, @ApiParam(value = "Maximum number of results to retrieve.") @RequestParam(required = false, defaultValue = "20") int size) { Location location = locationService.getLocation(orchestratorId, locationId); if (MapUtils.isEmpty(location.getUserPermissions())) { return RestResponseBuilder.<GetMultipleDataResult<UserDTO>> builder().data(new GetMultipleDataResult<>()).build(); } IdsFilterBuilder idFilters = FilterBuilders.idsFilter() .ids(location.getUserPermissions().keySet().toArray(new String[location.getUserPermissions().size()])); GetMultipleDataResult<User> tempResult = alienUserDao.find(query, from, size, idFilters); return RestResponseBuilder.<GetMultipleDataResult<UserDTO>> builder().data(UserDTO.convert(tempResult)).build(); }
filters.add(FilterBuilders.idsFilter().ids(ids));
allDTOs = IntStream.range(from, to).mapToObj(allDTOs::get).collect(Collectors.toList()); List<String> ids = allDTOs.stream().map(appEnvDTO -> appEnvDTO.getApplication().getId()).collect(Collectors.toList()); IdsFilterBuilder idFilters = FilterBuilders.idsFilter().ids(ids.toArray(new String[ids.size()])); GetMultipleDataResult<Application> tempResult = alienDAO.search(Application.class, query, null, idFilters, null, from, to, "id", false); return RestResponseBuilder.<GetMultipleDataResult<ApplicationEnvironmentAuthorizationDTO>> builder().data(ApplicationEnvironmentAuthorizationDTO.convert(tempResult, allDTOs)).build();
@Override public <P extends ParaObject> List<P> findNearby(String appid, String type, String query, int radius, double lat, double lng, Pager... pager) { if (StringUtils.isBlank(type) || StringUtils.isBlank(appid)) { return Collections.emptyList(); } if (StringUtils.isBlank(query)) { query = "*"; } // find nearby Address objects QueryBuilder qb1 = QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(), FilterBuilders.geoDistanceFilter("latlng").point(lat, lng). distance(radius, DistanceUnit.KILOMETERS)); SearchHits hits1 = searchQueryRaw(appid, Utils.type(Address.class), qb1, pager); if (hits1 == null) { return Collections.emptyList(); } // then find their parent objects String[] ridsarr = new String[(int) hits1.getTotalHits()]; for (int i = 0; i < hits1.getTotalHits(); i++) { Object pid = hits1.getAt(i).getSource().get(Config._PARENTID); if (pid != null) { ridsarr[i] = pid.toString(); } } QueryBuilder qb2 = QueryBuilders.filteredQuery(QueryBuilders.queryString(query), FilterBuilders.idsFilter(type).ids(ridsarr)); SearchHits hits2 = searchQueryRaw(appid, type, qb2, pager); return searchQuery(appid, hits2); }
&& getParameters().getIds().size() > 0) { String[] idsArray = getParameters().getIds().toArray(new String[getParameters().getIds().size()]); filters.add(FilterBuilders.idsFilter().addIds(idsArray));
IdsFilterBuilder idsFilterBuilder = FilterBuilders.idsFilter(); if(value.getClass().isArray()) { for(Object id : (Object[])value)