/** * Deleting a mapping */ @RequestMapping(value = "ldap-mapping/{id}/delete", method = RequestMethod.DELETE) public Ack deleteMapping(@PathVariable ID id) { securityService.checkGlobalFunction(AccountGroupManagement.class); return accountGroupMappingService.deleteMapping( LDAPExtensionFeature.LDAP_GROUP_MAPPING, id ); } }
@Override public Collection<AccountGroup> collectGroups(@NotNull AuthenticatedAccount authenticatedAccount) { // Gets the list of LDAP groups from the account Collection<String> ldapGroups = getLdapGroups(authenticatedAccount); // Maps them to the account groups return ldapGroups.stream() .flatMap(ldapGroup -> accountGroupMappingService.getGroups(LDAPExtensionFeature.LDAP_GROUP_MAPPING, ldapGroup).stream()) .collect(Collectors.toList()); }
/** * Gets a mapping */ @RequestMapping(value = "ldap-mapping/{id}", method = RequestMethod.GET) public LDAPMapping getMapping(@PathVariable ID id) { securityService.checkGlobalFunction(AccountGroupManagement.class); return LDAPMapping.of(accountGroupMappingService.getMapping(LDAPExtensionFeature.LDAP_GROUP_MAPPING, id)); }
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()); }; }
/** * Updating a mapping */ @RequestMapping(value = "ldap-mapping/{id}/update", method = RequestMethod.PUT) public LDAPMapping updateMapping(@PathVariable ID id, @RequestBody AccountGroupMappingInput input) { securityService.checkGlobalFunction(AccountGroupManagement.class); return LDAPMapping.of(accountGroupMappingService.updateMapping( LDAPExtensionFeature.LDAP_GROUP_MAPPING, id, input )); }
/** * Creates a mapping */ @RequestMapping(value = "ldap-mapping/create", method = RequestMethod.POST) public LDAPMapping newMapping(@RequestBody AccountGroupMappingInput input) { securityService.checkGlobalFunction(AccountGroupManagement.class); return LDAPMapping.of(accountGroupMappingService.newMapping(LDAPExtensionFeature.LDAP_GROUP_MAPPING, input)); }
group -> accountGroupMappingService.getMappingsForGroup(group).stream() .anyMatch(m -> StringUtils.equals(mapping, m.getName())) );
/** * 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) ) ; }
/** * Gets the form to update a mapping */ @RequestMapping(value = "ldap-mapping/{id}/update", method = RequestMethod.GET) public Form getMappingUpdateForm(@PathVariable ID id) { securityService.checkGlobalFunction(AccountGroupManagement.class); return accountGroupMappingService.getMapping(LDAPExtensionFeature.LDAP_GROUP_MAPPING, id).asForm( accountService.getAccountGroups() ); }