Ejemplo n.º 1
0
        private static async Task InvokeAuthorizers(
            SubmitContext context,
            IEnumerable <ChangeSetEntry> changeSetItems,
            CancellationToken cancellationToken)
        {
            foreach (ChangeSetEntry entry in changeSetItems.Where(i => i.HasChanged()))
            {
                string message = null;

                foreach (var authorizer in context
                         .GetHookPoints <IChangeSetEntryAuthorizer>().Reverse())
                {
                    if (!await authorizer.AuthorizeAsync(context, entry, cancellationToken))
                    {
                        message = DefaultSubmitHandler.GetAuthorizeFailedMessage(entry);
                        break;
                    }
                }

                if (message != null)
                {
                    throw new SecurityException(message);
                }
            }
        }
Ejemplo n.º 2
0
        private static async Task InvokeAuthorizers(
            SubmitContext context,
            IEnumerable <ChangeSetItem> changeSetItems,
            CancellationToken cancellationToken)
        {
            var authorizer = context.GetApiService <IChangeSetItemAuthorizer>();

            if (authorizer == null)
            {
                return;
            }

            foreach (ChangeSetItem item in changeSetItems.Where(i => i.HasChanged()))
            {
                if (!await authorizer.AuthorizeAsync(context, item, cancellationToken))
                {
                    var message = DefaultSubmitHandler.GetAuthorizeFailedMessage(item);
                    throw new SecurityException(message);
                }
            }
        }