Files
2026-08-05 21:15:14 +03:00

57 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 ECommerce_API.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 { }
// }