/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.security.rbac.OperationType
 *  com.l7tech.gateway.common.security.rbac.Role
 *  com.l7tech.identity.User
 *  com.l7tech.objectmodel.Entity
 *  com.l7tech.objectmodel.EntityType
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.objectmodel.OrganizationHeader
 *  com.l7tech.util.Cacheable
 *  com.l7tech.util.Pair
 *  org.jetbrains.annotations.NotNull
 *  org.jetbrains.annotations.Nullable
 */
package com.l7tech.server.security.rbac;

import com.l7tech.gateway.common.security.rbac.OperationType;
import com.l7tech.gateway.common.security.rbac.Role;
import com.l7tech.identity.User;
import com.l7tech.objectmodel.Entity;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.OrganizationHeader;
import com.l7tech.server.EntityFinder;
import com.l7tech.util.Cacheable;
import com.l7tech.util.Pair;
import java.util.Collection;
import java.util.Set;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public interface RbacServices {
    public boolean isPermittedForEntitiesOfTypes(User var1, OperationType var2, Set<EntityType> var3) throws FindException;

    public boolean isPermittedForAnyEntityOfType(User var1, OperationType var2, EntityType var3) throws FindException;

    public boolean isPermittedForSomeEntityOfType(User var1, OperationType var2, EntityType var3) throws FindException;

    public boolean isPermittedForEntity(User var1, Entity var2, OperationType var3, @Nullable String var4) throws FindException;

    public <T extends OrganizationHeader> Iterable<T> filterPermittedHeaders(User var1, OperationType var2, Iterable<T> var3, EntityFinder var4) throws FindException;

    @Cacheable(relevantArg=0, maxAge=5000)
    public boolean isAdministrativeUser(@NotNull Pair<Goid, String> var1, @NotNull User var2) throws FindException;

    @Cacheable(relevantArg=0, maxAge=1000)
    public Collection<Role> getAssignedRoles(@NotNull Pair<Goid, String> var1, @NotNull User var2) throws FindException;
}

