Exemplo n.º 1
0
        public bool CanAccess(Format format, string operationName)
        {
            if (!HostContext.Config.EnableAccessRestrictions)
            {
                return(true);
            }

            OperationNamesMap.TryGetValue(operationName.ToLowerInvariant(), out var operation);
            if (operation == null)
            {
                return(false);
            }

            var canCall = HasImplementation(operation, format);

            if (!canCall)
            {
                return(false);
            }

            if (operation.RestrictTo == null)
            {
                return(true);
            }

            var allowsFormat = operation.RestrictTo.HasAccessTo((RequestAttributes)(long)format);

            return(allowsFormat);
        }
Exemplo n.º 2
0
        public Type GetOperationType(string operationTypeName)
        {
            Operation operation;

            OperationNamesMap.TryGetValue(operationTypeName.ToLower(), out operation);
            return(operation != null ? operation.RequestType : null);
        }
Exemplo n.º 3
0
        public bool CanAccess(Format format, string operationName)
        {
            if (EndpointHost.Config != null && !EndpointHost.Config.EnableAccessRestrictions)
            {
                return(true);
            }

            Operation operation;

            OperationNamesMap.TryGetValue(operationName.ToLower(), out operation);
            if (operation == null)
            {
                return(false);
            }

            var canCall = HasImplementation(operation, format);

            if (!canCall)
            {
                return(false);
            }

            if (operation.RestrictTo == null)
            {
                return(true);
            }

            var allowsFormat = operation.RestrictTo.HasAccessTo((EndpointAttributes)(long)format);

            return(allowsFormat);
        }
Exemplo n.º 4
0
        public Type GetOperationType(string operationTypeName)
        {
            var opName = operationTypeName.ToLowerInvariant();

            if (!OperationNamesMap.TryGetValue(opName, out var operation))
            {
                var arrayPos = opName.LastIndexOf('[');
                if (arrayPos >= 0)
                {
                    opName = opName.Substring(0, arrayPos);
                    OperationNamesMap.TryGetValue(opName, out operation);
                    return(operation?.RequestType.MakeArrayType());
                }
            }
            return(operation?.RequestType);
        }
Exemplo n.º 5
0
        public Type GetOperationType(string operationTypeName)
        {
            Operation operation;
            var       opName = operationTypeName.ToLower();

            if (!OperationNamesMap.TryGetValue(opName, out operation))
            {
                var arrayPos = opName.LastIndexOf('[');
                if (arrayPos >= 0)
                {
                    opName = opName.Substring(0, arrayPos);
                    OperationNamesMap.TryGetValue(opName, out operation);
                    return(operation != null
                        ? operation.RequestType.MakeArrayType()
                        : null);
                }
            }
            return(operation != null ? operation.RequestType : null);
        }
Exemplo n.º 6
0
        public bool IsVisible(IRequest httpReq, Format format, string operationName)
        {
            if (HostContext.Config != null && !HostContext.Config.EnableAccessRestrictions)
            {
                return(true);
            }

            Operation operation;

            OperationNamesMap.TryGetValue(operationName.ToLowerInvariant(), out operation);
            if (operation == null)
            {
                return(false);
            }

            if (operation.RequestType.ExcludesFeature(Feature.Metadata))
            {
                return(false);
            }

            var canCall = HasImplementation(operation, format);

            if (!canCall)
            {
                return(false);
            }

            var isVisible = IsVisible(httpReq, operation);

            if (!isVisible)
            {
                return(false);
            }

            if (operation.RestrictTo == null)
            {
                return(true);
            }
            var allowsFormat = operation.RestrictTo.CanShowTo((RequestAttributes)(long)format);

            return(allowsFormat);
        }