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.Regions.Commands.UpdateRegion; public class UpdateRegionCommandAuthorizer : AbstractRequestAuthorizer { private readonly SessionUserService _sessionUserService; public UpdateRegionCommandAuthorizer(SessionUserService sessionUserService) { _sessionUserService = sessionUserService; } public override void BuildPolicy(UpdateRegionCommand request) { UseRequirement(new MustBeAuthenticatedRequirement { IsAuthenticated= _sessionUserService.IsAuthenticated }); UseRequirement(new MustBeInAnyOfRolesRequirement { RequiredRoles = [IdentityRole.Administrator], UserRoles = _sessionUserService.Roles }); } }