32 lines
1.0 KiB
C#
32 lines
1.0 KiB
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.VehicleEnrollments.Queries.GetVehicleEnrollmentsPage;
|
|
|
|
public class GetVehicleEnrollmentsPageQueryAuthorizer :
|
|
AbstractRequestAuthorizer<GetVehicleEnrollmentsPageQuery>
|
|
{
|
|
private readonly SessionUserService _sessionUserService;
|
|
|
|
public GetVehicleEnrollmentsPageQueryAuthorizer(SessionUserService sessionUserService)
|
|
{
|
|
_sessionUserService = sessionUserService;
|
|
}
|
|
|
|
public override void BuildPolicy(GetVehicleEnrollmentsPageQuery request)
|
|
{
|
|
UseRequirement(new MustBeAuthenticatedRequirement
|
|
{
|
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
|
});
|
|
|
|
UseRequirement(new MustBeInRolesRequirement
|
|
{
|
|
RequiredRoles = [IdentityRole.Administrator],
|
|
UserRoles = _sessionUserService.Roles
|
|
});
|
|
}
|
|
}
|