UNPKG

@neo4j/graphql

Version:

A GraphQL to Cypher query execution layer for Neo4j and JavaScript GraphQL implementations

71 lines 3.97 kB
"use strict"; /* * Copyright (c) "Neo4j" * Neo4j Sweden AB [http://neo4j.com] * * This file is part of Neo4j. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.getStaticAuthorizationDefinitions = getStaticAuthorizationDefinitions; const utils_1 = require("@graphql-tools/utils"); const graphql_1 = require("graphql"); const graphql_compose_1 = require("graphql-compose"); const AttributeAdapter_1 = require("../../../schema-model/attribute/model-adapters/AttributeAdapter"); const definition_collection_1 = require("../../../schema-model/parser/definition-collection"); const parse_attribute_1 = require("../../../schema-model/parser/parse-attribute"); const where_input_1 = require("../../../schema/generation/where-input"); const get_where_fields_1 = require("../../../schema/get-where-fields"); const jwt_payload_1 = require("./jwt-payload"); const static_definitions_1 = require("./static-definitions"); function getStaticAuthorizationDefinitions(userDocument, JWTPayloadDefinition) { const schema = new graphql_1.GraphQLSchema({}); const authorizationValidateStage = (0, utils_1.astFromEnumType)(static_definitions_1.AUTHORIZATION_VALIDATE_STAGE, schema); const authorizationValidateOperation = (0, utils_1.astFromEnumType)(static_definitions_1.AUTHORIZATION_VALIDATE_OPERATION, schema); const authorizationFilterOperation = (0, utils_1.astFromEnumType)(static_definitions_1.AUTHORIZATION_FILTER_OPERATION, schema); const authenticationOperation = (0, utils_1.astFromEnumType)(static_definitions_1.AUTHENTICATION_OPERATION, schema); const subscriptionsAuthorizationFilterOperation = (0, utils_1.astFromEnumType)(static_definitions_1.SUBSCRIPTIONS_AUTHORIZATION_FILTER_EVENT, schema); const ASTs = [ authorizationValidateStage, authorizationValidateOperation, authorizationFilterOperation, authenticationOperation, subscriptionsAuthorizationFilterOperation, ]; const JWTPayloadWhere = createJWTPayloadWhere(userDocument, schema, JWTPayloadDefinition); const JWTPayloadWhereAST = (0, utils_1.astFromInputObjectType)(JWTPayloadWhere, schema); ASTs.push(JWTPayloadWhereAST); return ASTs; } function createJWTPayloadWhere(userDocument, schema, JWTPayloadDefinition) { const definitionCollection = (0, definition_collection_1.getDefinitionCollection)(userDocument); const jwtStandardTypeDefinitionFields = (0, jwt_payload_1.getStandardJwtDefinition)(schema).fields || []; const jwtPayloadDefinitionFields = JWTPayloadDefinition?.fields || []; const jwtFieldAttributeAdapters = [...jwtStandardTypeDefinitionFields, ...jwtPayloadDefinitionFields].map((field) => new AttributeAdapter_1.AttributeAdapter((0, parse_attribute_1.parseAttribute)(field, definitionCollection))); const composer = new graphql_compose_1.SchemaComposer(); const inputFieldsType = (0, get_where_fields_1.getWhereFieldsForAttributes)({ attributes: jwtFieldAttributeAdapters, userDefinedFieldDirectives: undefined, features: undefined, ignoreCypherFieldFilters: false, composer, }); const inputTC = composer.createInputTC({ name: "JWTPayloadWhere", fields: inputFieldsType, }); (0, where_input_1.addLogicalOperatorsToWhereInputType)(inputTC); return inputTC.getType(); } //# sourceMappingURL=get-static-auth-definitions.js.map