using cuqmbr.TravelGuide.Application.Common.Authorization; using cuqmbr.TravelGuide.Application.Common.Interfaces.Services; using cuqmbr.TravelGuide.Application.Common.Models; using MediatR.Behaviors.Authorization; namespace cuqmbr.TravelGuide.Application.Trains.Commands.AddTrain; public class AddTrainCommandAuthorizer : AbstractRequestAuthorizer { private readonly SessionUserService _sessionUserService; public AddTrainCommandAuthorizer(SessionUserService sessionUserService) { _sessionUserService = sessionUserService; } public override void BuildPolicy(AddTrainCommand request) { UseRequirement(new MustBeAuthenticatedRequirement { IsAuthenticated= _sessionUserService.IsAuthenticated }); UseRequirement(new MustBeInRolesRequirement { RequiredRoles = [IdentityRole.Administrator], UserRoles = _sessionUserService.Roles }); } }