private DataFetcher adminAccountGroupMappingsFetcher() { return environment -> { Predicate<AccountGroupMapping> filter = agm -> true; // Filter on name Optional<String> nameArgument = GraphqlUtils.getStringArgument(environment, MAPPING_NAME_ARGUMENT); if (nameArgument.isPresent()) { filter = filter.and(agm -> StringUtils.equals(nameArgument.get(), agm.getName()) ); } // Filter on group Optional<String> groupArgument = GraphqlUtils.getStringArgument(environment, MAPPING_GROUP_ARGUMENT); if (groupArgument.isPresent()) { filter = filter.and(agm -> StringUtils.equals(groupArgument.get(), agm.getGroup().getName()) ); } // List return accountGroupMappingService.getMappings( GraphqlUtils.getStringArgument(environment, MAPPING_TYPE_ARGUMENT) .orElseThrow(() -> new IllegalStateException("Required argument: " + MAPPING_TYPE_ARGUMENT)) ) .stream() .filter(filter) .collect(Collectors.toList()); }; }
/** * Gets the list of mappings */ @RequestMapping(value = "ldap-mapping", method = RequestMethod.GET) public Resources<LDAPMapping> getMappings() { securityService.checkGlobalFunction(AccountGroupManagement.class); return Resources.of( accountGroupMappingService.getMappings(LDAPExtensionFeature.LDAP_GROUP_MAPPING) .stream().map(LDAPMapping::of), uri(on(getClass()).getMappings()) ) .with( Link.CREATE, uri(on(getClass()).getMappingCreationForm()), securityService.isGlobalFunctionGranted(AccountGroupManagement.class) ) ; }