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.Routes.Queries.GetRoutesPage; public class GetRoutesPageQueryAuthorizer : AbstractRequestAuthorizer { private readonly SessionUserService _sessionUserService; public GetRoutesPageQueryAuthorizer(SessionUserService sessionUserService) { _sessionUserService = sessionUserService; } public override void BuildPolicy(GetRoutesPageQuery request) { UseRequirement(new MustBeAuthenticatedRequirement { IsAuthenticated= _sessionUserService.IsAuthenticated }); UseRequirement(new MustBeInAnyOfRolesRequirement { RequiredRoles = [IdentityRole.Administrator, IdentityRole.CompanyOwner], UserRoles = _sessionUserService.Roles }); } }