51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
using DataProviders.Collections;
|
|
using DomainObjects.Documents;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using WeatherForecast.Policies.Abstractions;
|
|
using WeatherForecast.Services;
|
|
|
|
namespace WeatherForecast.Policies {
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public class ShopCartAuthorizationHandler : AuthorizationHandlerBase<ShopCartAuthorizationRequirement, List<ShopCartDocument>> {
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="contextAccessor"></param>
|
|
/// <param name="userDataProvider"></param>
|
|
/// <param name="accountService"></param>
|
|
public ShopCartAuthorizationHandler(
|
|
IHttpContextAccessor contextAccessor,
|
|
IUserDataProvider userDataProvider,
|
|
IAccountPolicyService accountService
|
|
) : base(contextAccessor, userDataProvider, accountService) { }
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <param name="requirement"></param>
|
|
/// <param name="resource"></param>
|
|
/// <returns></returns>
|
|
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, ShopCartAuthorizationRequirement requirement, List<ShopCartDocument> resource) {
|
|
var user = GetUser(context);
|
|
if (user == null)
|
|
return Task.CompletedTask;
|
|
|
|
// any authenticated user except
|
|
|
|
context.Succeed(requirement);
|
|
|
|
return Task.CompletedTask;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public class ShopCartAuthorizationRequirement : AuthorizationRequirementBase { }
|
|
}
|