All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.netflix.spinnaker.fiat.providers.BaseServiceAccountResourceProvider Maven / Gradle / Ivy

There is a newer version: 1.54.1
Show newest version
package com.netflix.spinnaker.fiat.providers;

import com.netflix.spinnaker.fiat.model.resources.Role;
import com.netflix.spinnaker.fiat.model.resources.ServiceAccount;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import lombok.NonNull;

public abstract class BaseServiceAccountResourceProvider
    extends BaseResourceProvider {
  private final Collection serviceAccountPredicateProviders;

  public BaseServiceAccountResourceProvider(
      Collection serviceAccountPredicateProviders) {
    this.serviceAccountPredicateProviders = serviceAccountPredicateProviders;
  }

  @Override
  public Set getAllRestricted(
      @NonNull String userId, @NonNull Set userRoles, boolean isAdmin)
      throws ProviderException {
    List userRoleNames = userRoles.stream().map(Role::getName).collect(Collectors.toList());
    return getAll().stream()
        .filter(svcAcct -> !svcAcct.getMemberOf().isEmpty())
        .filter(
            svcAcct ->
                serviceAccountPredicateProviders.stream()
                    .anyMatch(p -> p.get(userId, userRoleNames, isAdmin).test(svcAcct)))
        .collect(Collectors.toSet());
  }

  @Override
  public Set getAllUnrestricted() throws ProviderException {
    return Collections.emptySet();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy