http-api/src/Application/Trains/Commands/AddTrain/AddTrainCommandAuthorizer.cs
cuqmbr 3ebd0c3a2c
All checks were successful
/ build (push) Successful in 6m13s
/ tests (push) Successful in 47s
/ build-docker (push) Successful in 6m48s
add vehicles hierarchy management
2025-05-03 10:09:52 +03:00

32 lines
979 B
C#

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<AddTrainCommand>
{
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
});
}
}