2using System.Collections.Generic;
4using System.Threading.Tasks;
6using Microsoft.AspNetCore.Authorization;
31 readonly Func<Security.IAuthorizationService, ValueTask<TResult>>
getResponse;
46 () => ValueTask.FromResult(result));
54 Func<ValueTask<IAuthorizationRequirement?>> getRequirement,
57 ArgumentNullException.ThrowIfNull(getRequirement);
61 var requirement = await getRequirement();
62 if (requirement ==
null)
65 return new List<IAuthorizationRequirement>
96 Func<IAuthorizationRequirement?> getRequirement,
98 long? instanceId =
null,
101 ArgumentNullException.ThrowIfNull(getRequirement);
105 var requirement = getRequirement();
106 if (requirement ==
null)
109 return ValueTask.FromResult<IEnumerable<IAuthorizationRequirement>>(
110 new List<IAuthorizationRequirement>
128 Func<IAuthorizationRequirement?> getRequirement,
129 Func<Security.IAuthorizationService, ValueTask<TResult>>
getResponse)
131 ArgumentNullException.ThrowIfNull(getRequirement);
134 var requirement = getRequirement();
135 if (requirement ==
null)
138 return ValueTask.FromResult<IEnumerable<IAuthorizationRequirement>>(
139 new List<IAuthorizationRequirement>
166 public ValueTask<TResult>
Execute(Security.IAuthorizationService authorizationService)
Evaluates a set of IAuthorizationRequirements to be checked before executing a response.
readonly Func< Security.IAuthorizationService, ValueTask< TResult > > getResponse
The response generation function.
RequirementsGated(Func< IAuthorizationRequirement?> getRequirement, Func< Security.IAuthorizationService, ValueTask< TResult > > getResponse)
Initializes a new instance of the RequirementsGated<TResult> class.
RequirementsGated(Func< ValueTask< IAuthorizationRequirement?> > getRequirement, Func< ValueTask< TResult > > getResponse)
Initializes a new instance of the RequirementsGated<TResult> class.
static RequirementsGated< TResult > FromResult(TResult result)
Convert a given result into a RequirementsGated<TResult>.
readonly Func< ValueTask< IEnumerable< IAuthorizationRequirement > > > getRequirements
The IAuthorizationRequirement retrieval function. UserSessionValidRequirement is included automatical...
RequirementsGated(Func< IEnumerable< IAuthorizationRequirement > > getRequirements, Func< ValueTask< TResult > > getResponse)
Initializes a new instance of the RequirementsGated<TResult> class.
RequirementsGated(Func< IAuthorizationRequirement?> getRequirement, Func< ValueTask< TResult > > getResponse, long? instanceId=null, bool doNotAddUserSessionValidRequirement=false)
Initializes a new instance of the RequirementsGated<TResult> class.
long? InstanceId
Api.Models.EntityId.Id of the relevant instance.
async ValueTask< IEnumerable< IAuthorizationRequirement > > GetRequirements()
Evaluates the IAuthorizationRequirements of the request.
ValueTask< TResult > Execute(Security.IAuthorizationService authorizationService)
Executes the request.
readonly bool doNotAddUserSessionValidRequirement
If the UserSessionValidRequirement should not be added.
IAuthorizationRequirement for testing if a user is enabled and their session is valid.
static IEnumerable< UserSessionValidRequirement > InstanceAsEnumerable
The singleton instance of this class.