if (request.getPage() <= 0) { throw new RuntimeException("First page must be 1."); final String pattern = request.getSearchPattern(); final boolean isPatternEmpty = isEmpty(pattern); Collection<String> result = isPatternEmpty ? entityIdentifiers : new LinkedList<String>();
public AbstractEntityManager.SearchResponse<T> createResponse(Collection<T> entities, AbstractEntityManager.SearchRequest request) { List<T> result = new LinkedList<T>(entities); // Apply pagination. final int total = result.size(); // First page is 1. final int page = request.getPage() - 1; final int pageSize = request.getPageSize(); final int startPos = page * pageSize; final int endPos = startPos + pageSize > total ? total : startPos + pageSize; if (result.size() >= startPos) { result = result.subList(startPos, endPos); } // Return the paginated response. return new SearchResponseImpl<T>(result, page + 1, pageSize, total, total > endPos); }
protected boolean isConstrained(AbstractEntityManager.SearchRequest request, String name) { final Set<String> constrainedIdentifiers = request.getConstrainedIdentifiers(); if (null != constrainedIdentifiers) { for (final String id : constrainedIdentifiers) { if (id.equals(name)) { return true; } } } return false; }
final SearchRequest req = getSearchRequest(request); if (req.getPage() <= 0) { throw new RuntimeException("First page must be 1."); final int page = req.getPage() - 1; final int pageSize = req.getPageSize(); final List<User> users = new ArrayList<User>(); final int[] numberOfFoundUsers = new int[]{0}; consumeRealm(realmResource -> { final UsersResource usersResource = realmResource.users(); final List<UserRepresentation> userRepresentations = usersResource.search(req.getSearchPattern(), page * pageSize, pageSize + 1); numberOfFoundUsers[0] = usersResource.search(req.getSearchPattern(), 1, Integer.MAX_VALUE).size(); int x = 0; for (UserRepresentation userRepresentation : userRepresentations) { if (x == req.getPageSize()) { hasNextPage[0] = true; } else {
final SearchRequest req = getSearchRequest(request); if (req.getPage() <= 0) { throw new RuntimeException("First page must be 1."); final int page = req.getPage() - 1; final int pageSize = req.getPageSize(); final List<User> users = new ArrayList<User>(); final int[] numberOfFoundUsers = new int[]{0}; consumeRealm(realmResource -> { final UsersResource usersResource = realmResource.users(); final List<UserRepresentation> userRepresentations = usersResource.search(req.getSearchPattern(), page * pageSize, pageSize + 1); numberOfFoundUsers[0] = usersResource.search(req.getSearchPattern(), 1, Integer.MAX_VALUE).size(); int x = 0; for (UserRepresentation userRepresentation : userRepresentations) { if (x == req.getPageSize()) { hasNextPage[0] = true; } else {
@Override public SearchResponse<Group> search(SearchRequest request) throws SecurityManagementException { // First page must be 1. if (request.getPage() <= 0) { throw new RuntimeException("First page must be 1."); } final List<Group> roles = new LinkedList<>(); consumeRealm(realmResource -> { final RolesResource rolesResource = realmResource.roles(); final List<RoleRepresentation> roleRepresentations = rolesResource.list(); if (roleRepresentations != null && !roleRepresentations.isEmpty()) { for (RoleRepresentation role : roleRepresentations) { final String name = role.getName(); final Group group = createGroup(name); roles.add(group); } } }); return groupsSearchEngine.search(roles, request); }
@Override public AbstractEntityManager.SearchResponse<T> search(Collection<T> entities, AbstractEntityManager.SearchRequest request) { if (entities == null || request == null) { return null; } // First page must be 1. if (request.getPage() <= 0) { throw new RuntimeException("First page must be 1."); } // Search elements using the given pattern & check the returning elements are not considered roles on UF. final String pattern = request.getSearchPattern(); final boolean isPatternEmpty = isEmpty(pattern); Collection<T> result = isPatternEmpty ? entities : new LinkedList<T>(); if (!isPatternEmpty) { for (T entity : entities) { final String id = getIdentifier(entity); if (!isConstrained(request, id) && id.contains(pattern)) { result.add(entity); } } } return createResponse(result, request); }
@Override public SearchResponse<Group> search(SearchRequest request) throws SecurityManagementException { // First page must be 1. if (request.getPage() <= 0) { throw new RuntimeException("First page must be 1."); } final List<Group> roles = new LinkedList<>(); consumeRealm(realmResource -> { final RolesResource rolesResource = realmResource.roles(); final List<RoleRepresentation> roleRepresentations = rolesResource.list(); if (roleRepresentations != null && !roleRepresentations.isEmpty()) { for (RoleRepresentation role : roleRepresentations) { final String name = role.getName(); final Group group = createGroup(name); roles.add(group); } } }); return groupsSearchEngine.search(roles, request); }
@Override public SearchResponse<Group> search(SearchRequest request) throws SecurityManagementException { final GroupManager serviceImpl = getService(); if (request.getPage() == 0) { throw new IllegalArgumentException("First page must be 1."); } // Constraint registered UF roles as not allowed for searching. final Set<String> registeredRoleNames = SecurityManagementUtils.getRegisteredRoleNames(); if (request.getConstrainedIdentifiers() == null) { request.setConstrainedIdentifiers(registeredRoleNames); } else { request.getConstrainedIdentifiers().addAll(registeredRoleNames); } // Delegate the search to the specific provider. return serviceImpl.search(request); }
@Override public SearchResponse<User> search(SearchRequest request) { final UserManager serviceImpl = getService(); // Delegate to the current service provider implementation. if (request.getPage() == 0) { throw new IllegalArgumentException("First page must be 1."); } return serviceImpl.search(request); }
protected AbstractEntityManager.SearchRequest buildSearchRequestMock(String pattern, int page, int pageSize) { AbstractEntityManager.SearchRequest request = mock(AbstractEntityManager.SearchRequest.class); when(request.getSearchPattern()).thenReturn(pattern); when(request.getPage()).thenReturn(page); when(request.getPageSize()).thenReturn(pageSize); return request; } }
@Override public SearchResponse<Role> search(SearchRequest request) throws SecurityManagementException { final RoleManager serviceImpl = getService(); if (request.getPage() == 0) { throw new IllegalArgumentException("First page must be 1."); } return serviceImpl.search(request); }
protected AbstractEntityManager.SearchRequest buildSearchRequestMock(String pattern, int page, int pageSize) { AbstractEntityManager.SearchRequest request = mock(AbstractEntityManager.SearchRequest.class); when(request.getSearchPattern()).thenReturn(pattern); when(request.getPage()).thenReturn(page); when(request.getPageSize()).thenReturn(pageSize); return request; } }