Skip to content

Commit

Permalink
Add missing authorization extensions from field and connection builde…
Browse files Browse the repository at this point in the history
…rs (#3324)

Add authorization extensions
  • Loading branch information
Shane32 committed Sep 16, 2022
1 parent c458360 commit e7dbf99
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 0 deletions.
9 changes: 9 additions & 0 deletions src/GraphQL.ApiTests/net6/GraphQL.approved.txt
Expand Up @@ -13,20 +13,29 @@ namespace GraphQL
public const string AUTHORIZE_KEY = "Authorization__Required";
public const string POLICY_KEY = "Authorization__Policies";
public const string ROLE_KEY = "Authorization__Roles";
public static GraphQL.Builders.ConnectionBuilder<TSourceType> AllowAnonymous<TSourceType>(this GraphQL.Builders.ConnectionBuilder<TSourceType> builder) { }
public static TMetadataProvider AllowAnonymous<TMetadataProvider>(this TMetadataProvider provider)
where TMetadataProvider : GraphQL.Types.IProvideMetadata { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> AllowAnonymous<TSourceType, TReturnType>(this GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> builder) { }
public static GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> AllowAnonymous<TSourceType, TReturnType>(this GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> builder) { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType> Authorize<TSourceType>(this GraphQL.Builders.ConnectionBuilder<TSourceType> builder) { }
public static TMetadataProvider Authorize<TMetadataProvider>(this TMetadataProvider provider)
where TMetadataProvider : GraphQL.Types.IProvideMetadata { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> Authorize<TSourceType, TReturnType>(this GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> builder) { }
public static GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> Authorize<TSourceType, TReturnType>(this GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> builder) { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType> AuthorizeWithPolicy<TSourceType>(this GraphQL.Builders.ConnectionBuilder<TSourceType> builder, string policy) { }
public static TMetadataProvider AuthorizeWithPolicy<TMetadataProvider>(this TMetadataProvider provider, string policy)
where TMetadataProvider : GraphQL.Types.IProvideMetadata { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> AuthorizeWithPolicy<TSourceType, TReturnType>(this GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> builder, string policy) { }
public static GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> AuthorizeWithPolicy<TSourceType, TReturnType>(this GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> builder, string policy) { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType> AuthorizeWithRoles<TSourceType>(this GraphQL.Builders.ConnectionBuilder<TSourceType> builder, string roles) { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType> AuthorizeWithRoles<TSourceType>(this GraphQL.Builders.ConnectionBuilder<TSourceType> builder, params string[] roles) { }
public static TMetadataProvider AuthorizeWithRoles<TMetadataProvider>(this TMetadataProvider provider, string roles)
where TMetadataProvider : GraphQL.Types.IProvideMetadata { }
public static TMetadataProvider AuthorizeWithRoles<TMetadataProvider>(this TMetadataProvider provider, params string[] roles)
where TMetadataProvider : GraphQL.Types.IProvideMetadata { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> AuthorizeWithRoles<TSourceType, TReturnType>(this GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> builder, string roles) { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> AuthorizeWithRoles<TSourceType, TReturnType>(this GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> builder, params string[] roles) { }
public static GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> AuthorizeWithRoles<TSourceType, TReturnType>(this GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> builder, string roles) { }
public static GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> AuthorizeWithRoles<TSourceType, TReturnType>(this GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> builder, params string[] roles) { }
public static System.Collections.Generic.List<string>? GetPolicies(this GraphQL.Types.IProvideMetadata provider) { }
Expand Down
Expand Up @@ -13,20 +13,29 @@ namespace GraphQL
public const string AUTHORIZE_KEY = "Authorization__Required";
public const string POLICY_KEY = "Authorization__Policies";
public const string ROLE_KEY = "Authorization__Roles";
public static GraphQL.Builders.ConnectionBuilder<TSourceType> AllowAnonymous<TSourceType>(this GraphQL.Builders.ConnectionBuilder<TSourceType> builder) { }
public static TMetadataProvider AllowAnonymous<TMetadataProvider>(this TMetadataProvider provider)
where TMetadataProvider : GraphQL.Types.IProvideMetadata { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> AllowAnonymous<TSourceType, TReturnType>(this GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> builder) { }
public static GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> AllowAnonymous<TSourceType, TReturnType>(this GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> builder) { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType> Authorize<TSourceType>(this GraphQL.Builders.ConnectionBuilder<TSourceType> builder) { }
public static TMetadataProvider Authorize<TMetadataProvider>(this TMetadataProvider provider)
where TMetadataProvider : GraphQL.Types.IProvideMetadata { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> Authorize<TSourceType, TReturnType>(this GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> builder) { }
public static GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> Authorize<TSourceType, TReturnType>(this GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> builder) { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType> AuthorizeWithPolicy<TSourceType>(this GraphQL.Builders.ConnectionBuilder<TSourceType> builder, string policy) { }
public static TMetadataProvider AuthorizeWithPolicy<TMetadataProvider>(this TMetadataProvider provider, string policy)
where TMetadataProvider : GraphQL.Types.IProvideMetadata { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> AuthorizeWithPolicy<TSourceType, TReturnType>(this GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> builder, string policy) { }
public static GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> AuthorizeWithPolicy<TSourceType, TReturnType>(this GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> builder, string policy) { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType> AuthorizeWithRoles<TSourceType>(this GraphQL.Builders.ConnectionBuilder<TSourceType> builder, string roles) { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType> AuthorizeWithRoles<TSourceType>(this GraphQL.Builders.ConnectionBuilder<TSourceType> builder, params string[] roles) { }
public static TMetadataProvider AuthorizeWithRoles<TMetadataProvider>(this TMetadataProvider provider, string roles)
where TMetadataProvider : GraphQL.Types.IProvideMetadata { }
public static TMetadataProvider AuthorizeWithRoles<TMetadataProvider>(this TMetadataProvider provider, params string[] roles)
where TMetadataProvider : GraphQL.Types.IProvideMetadata { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> AuthorizeWithRoles<TSourceType, TReturnType>(this GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> builder, string roles) { }
public static GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> AuthorizeWithRoles<TSourceType, TReturnType>(this GraphQL.Builders.ConnectionBuilder<TSourceType, TReturnType> builder, params string[] roles) { }
public static GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> AuthorizeWithRoles<TSourceType, TReturnType>(this GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> builder, string roles) { }
public static GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> AuthorizeWithRoles<TSourceType, TReturnType>(this GraphQL.Builders.FieldBuilder<TSourceType, TReturnType> builder, params string[] roles) { }
public static System.Collections.Generic.List<string>? GetPolicies(this GraphQL.Types.IProvideMetadata provider) { }
Expand Down
72 changes: 72 additions & 0 deletions src/GraphQL/Extensions/AuthorizationExtensions.cs
Expand Up @@ -236,6 +236,22 @@ public static TMetadataProvider AuthorizeWithRoles<TMetadataProvider>(this TMeta
return builder;
}

/// <inheritdoc cref="Authorize{TMetadataProvider}(TMetadataProvider)"/>
public static FieldBuilder<TSourceType, TReturnType> Authorize<TSourceType, TReturnType>(
this FieldBuilder<TSourceType, TReturnType> builder)
{
builder.FieldType.Authorize();
return builder;
}

/// <inheritdoc cref="AllowAnonymous{TMetadataProvider}(TMetadataProvider)"/>
public static FieldBuilder<TSourceType, TReturnType> AllowAnonymous<TSourceType, TReturnType>(
this FieldBuilder<TSourceType, TReturnType> builder)
{
builder.FieldType.AllowAnonymous();
return builder;
}

/// <summary>
/// Adds authorization policy to the specified connection builder. If the underlying field already
/// contains a policy with the same name, then it will not be added twice.
Expand Down Expand Up @@ -279,5 +295,61 @@ public static TMetadataProvider AuthorizeWithRoles<TMetadataProvider>(this TMeta
builder.FieldType.AuthorizeWithRoles(roles);
return builder;
}

/// <inheritdoc cref="Authorize{TMetadataProvider}(TMetadataProvider)"/>
public static ConnectionBuilder<TSourceType> Authorize<TSourceType>(
this ConnectionBuilder<TSourceType> builder)
{
builder.FieldType.Authorize();
return builder;
}

/// <inheritdoc cref="AllowAnonymous{TMetadataProvider}(TMetadataProvider)"/>
public static ConnectionBuilder<TSourceType> AllowAnonymous<TSourceType>(
this ConnectionBuilder<TSourceType> builder)
{
builder.FieldType.AllowAnonymous();
return builder;
}

/// <inheritdoc cref="AuthorizeWithPolicy{TSourceType}(ConnectionBuilder{TSourceType}, string)"/>
public static ConnectionBuilder<TSourceType, TReturnType> AuthorizeWithPolicy<TSourceType, TReturnType>(
this ConnectionBuilder<TSourceType, TReturnType> builder, string policy)
{
builder.FieldType.AuthorizeWithPolicy(policy);
return builder;
}

/// <inheritdoc cref="AuthorizeWithRoles{TSourceType}(ConnectionBuilder{TSourceType}, string)"/>
public static ConnectionBuilder<TSourceType, TReturnType> AuthorizeWithRoles<TSourceType, TReturnType>(
this ConnectionBuilder<TSourceType, TReturnType> builder, string roles)
{
builder.FieldType.AuthorizeWithRoles(roles);
return builder;
}

/// <inheritdoc cref="AuthorizeWithRoles{TSourceType}(ConnectionBuilder{TSourceType}, string)"/>
public static ConnectionBuilder<TSourceType, TReturnType> AuthorizeWithRoles<TSourceType, TReturnType>(
this ConnectionBuilder<TSourceType, TReturnType> builder, params string[] roles)
{
builder.FieldType.AuthorizeWithRoles(roles);
return builder;
}

/// <inheritdoc cref="Authorize{TMetadataProvider}(TMetadataProvider)"/>
public static ConnectionBuilder<TSourceType, TReturnType> Authorize<TSourceType, TReturnType>(
this ConnectionBuilder<TSourceType, TReturnType> builder)
{
builder.FieldType.Authorize();
return builder;
}

/// <inheritdoc cref="AllowAnonymous{TMetadataProvider}(TMetadataProvider)"/>
public static ConnectionBuilder<TSourceType, TReturnType> AllowAnonymous<TSourceType, TReturnType>(
this ConnectionBuilder<TSourceType, TReturnType> builder)
{
builder.FieldType.AllowAnonymous();
return builder;
}
}
}

0 comments on commit e7dbf99

Please sign in to comment.