private Optional<GlobalPermission> getGroupGlobalPermission(AccountGroup group) { Optional<String> roleId = roleRepository.findGlobalRoleByGroup(group.id()); if (roleId.isPresent()) { Optional<GlobalRole> globalRole = rolesService.getGlobalRole(roleId.get()); if (globalRole.isPresent()) { return Optional.of( new GlobalPermission( group.asPermissionTarget(), globalRole.get() ) ); } } return Optional.empty(); }
private DataFetcher projectAuthorizationsFetcher() { return fetcher( Project.class, (environment, project) -> rolesService.getProjectRoles().stream() .filter(GraphqlUtils.getStringArgument(environment, "role") .map(s -> (Predicate<ProjectRole>) pr -> StringUtils.equals(s, pr.getId())) .orElseGet(() -> pr -> true)) .map(projectRole -> getProjectAuthorizations(project, projectRole)) .collect(Collectors.toList()) ); }
@Override public GraphQLFieldDefinition getFieldDefinition() { return newFieldDefinition() .name("globalRoles") .description("List of global security roles") .type(stdList(globalRole.getTypeRef())) .argument(a -> a.name("role") .description("Filter by role name") .type(GraphQLString) ) .dataFetcher(environment -> GraphqlUtils.getStringArgument(environment, "role") .map(name -> Collections.singletonList( rolesService.getGlobalRole(name) .orElseThrow(() -> new RoleNotFoundException(name)) )) .orElse(rolesService.getGlobalRoles())) .build(); }
private Optional<GlobalPermission> getGlobalPermission(Account account) { Optional<String> roleId = roleRepository.findGlobalRoleByAccount(account.id()); if (roleId.isPresent()) { Optional<GlobalRole> globalRole = rolesService.getGlobalRole(roleId.get()); if (globalRole.isPresent()) { return Optional.of( new GlobalPermission( account.asPermissionTarget(), globalRole.get() ) ); } } return Optional.empty(); }