using cuqmbr.TravelGuide.Application.Common.Authorization; using cuqmbr.TravelGuide.Application.Common.Services; using cuqmbr.TravelGuide.Domain.Enums; using MediatR.Behaviors.Authorization; namespace cuqmbr.TravelGuide.Application.Cities.Queries.GetCity; public class GetCityQueryAuthorizer : AbstractRequestAuthorizer { private readonly SessionUserService _sessionUserService; public GetCityQueryAuthorizer(SessionUserService sessionUserService) { _sessionUserService = sessionUserService; } public override void BuildPolicy(GetCityQuery request) { UseRequirement(new MustBeAuthenticatedRequirement { IsAuthenticated= _sessionUserService.IsAuthenticated }); UseRequirement(new MustBeInRolesRequirement { RequiredRoles = [IdentityRole.Administrator], UserRoles = _sessionUserService.Roles }); } }