56 lines
1.9 KiB
C#
56 lines
1.9 KiB
C#
// using System;
|
|
// using System.Collections.Generic;
|
|
// using System.Linq;
|
|
// using System.Threading.Tasks;
|
|
// using Microsoft.AspNetCore.Authorization;
|
|
// using Core.Services;
|
|
// using System.Security.Claims;
|
|
// using Microsoft.AspNetCore.Identity;
|
|
// using System.Threading.Tasks;
|
|
|
|
// namespace Commerce.Config.AuthorizeHandlers;
|
|
// public class OrderOwnerOrAdminHandler : AuthorizationHandler<OrderOwnerOrAdminRequirement, Guid>
|
|
// {
|
|
// // private readonly IServiceProvider _serviceProvider;
|
|
|
|
// // public OrderOwnerOrAdminHandler(IServiceProvider serviceProvider)
|
|
// // {
|
|
// // _serviceProvider = serviceProvider;
|
|
// // }
|
|
// private readonly IServiceProvider _serviceProvider;
|
|
|
|
// public OrderOwnerOrAdminHandler(IServiceProvider serviceProvider)
|
|
// {
|
|
// _serviceProvider = serviceProvider;
|
|
// }
|
|
|
|
// protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context,
|
|
// OrderOwnerOrAdminRequirement requirement, Guid orderId)
|
|
// {
|
|
|
|
// using var scope = _serviceProvider.CreateScope();
|
|
// var orderService = scope.ServiceProvider.GetRequiredService<OrderService>();
|
|
|
|
// var user = context.User;
|
|
// var userId = user.FindFirst(ClaimTypes.NameIdentifier)?.Value;
|
|
// var isAdmin = user.IsInRole("Admin");
|
|
|
|
// if (isAdmin)
|
|
// {
|
|
// context.Succeed(requirement);
|
|
// return;
|
|
// }
|
|
|
|
// // // var order = await orderService.GetOrderById(orderId.ToString());
|
|
// // if (order != null && order.CustomerId == userId)
|
|
// // {
|
|
// // context.Succeed(requirement);
|
|
// // }
|
|
// }
|
|
// }
|
|
|
|
// public class OrderOwnerOrAdminRequirement : IAuthorizationRequirement { }
|
|
|
|
|
|
|