http-api/src/Application/Countries/Queries/GetCountriesPage/GetCountriesPageQueryAuthorizer.cs
cuqmbr 0508c89c2d
All checks were successful
/ build (push) Successful in 7m55s
/ tests (push) Successful in 40s
/ build-docker (push) Successful in 8m27s
add authorization requirements
2025-06-03 18:00:07 +03:00

33 lines
1.0 KiB
C#

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