@neo4j/graphql
Version:
A GraphQL to Cypher query execution layer for Neo4j and JavaScript GraphQL implementations
34 lines • 1.82 kB
TypeScript
import type Cypher from "@neo4j/cypher-builder";
import type { AuthorizationAnnotation, AuthorizationOperation, ValidateWhen } from "../../../schema-model/annotation/AuthorizationAnnotation";
import type { AttributeAdapter } from "../../../schema-model/attribute/model-adapters/AttributeAdapter";
import type { ConcreteEntityAdapter } from "../../../schema-model/entity/model-adapters/ConcreteEntityAdapter";
import type { Neo4jGraphQLTranslationContext } from "../../../types/neo4j-graphql-translation-context";
import { AuthorizationFilters } from "../ast/filters/authorization-filters/AuthorizationFilters";
import type { AuthFilterFactory } from "./AuthFilterFactory";
type AuthParams = {
entity: ConcreteEntityAdapter;
operations: AuthorizationOperation[];
context: Neo4jGraphQLTranslationContext;
};
type AuthFilterParams = AuthParams & {
authAnnotation: AuthorizationAnnotation | undefined;
};
type AuthValidateParams = AuthParams & {
when: ValidateWhen;
conditionForEvaluation?: Cypher.Predicate;
authAnnotation: AuthorizationAnnotation | undefined;
};
export declare class AuthorizationFactory {
private filterFactory;
constructor(filterFactory: AuthFilterFactory);
/** @param afterValidation Use it to add "AFTER" validate filters */
getAuthFilters({ attributes, afterValidation, ...params }: AuthParams & {
afterValidation?: boolean;
attributes?: AttributeAdapter[];
}): AuthorizationFilters[];
createAuthFilterRule({ authAnnotation, ...params }: AuthFilterParams): AuthorizationFilters | undefined;
createAuthValidateRule({ authAnnotation, when, conditionForEvaluation, ...params }: AuthValidateParams): AuthorizationFilters | undefined;
private createAuthRuleFilter;
}
export {};
//# sourceMappingURL=AuthorizationFactory.d.ts.map