add authorization requirements
This commit is contained in:
parent
120963f3cc
commit
0508c89c2d
@ -22,9 +22,10 @@ public class AddAddressCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles =
|
||||||
|
[IdentityRole.Administrator, IdentityRole.CompanyOwner],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ public class DeleteAddressCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -22,7 +22,7 @@ public class UpdateAddressCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -19,12 +19,13 @@ public class GetAddressQueryAuthorizer :
|
|||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles =
|
||||||
|
[IdentityRole.Administrator, IdentityRole.CompanyOwner],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -19,12 +19,13 @@ public class GetAddressesPageQueryAuthorizer :
|
|||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles =
|
||||||
|
[IdentityRole.Administrator, IdentityRole.CompanyOwner],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Aircrafts.Commands.AddAircraft;
|
namespace cuqmbr.TravelGuide.Application.Aircrafts.Commands.AddAircraft;
|
||||||
@ -9,23 +9,34 @@ public class AddAircraftCommandAuthorizer :
|
|||||||
AbstractRequestAuthorizer<AddAircraftCommand>
|
AbstractRequestAuthorizer<AddAircraftCommand>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public AddAircraftCommandAuthorizer(SessionUserService sessionUserService)
|
public AddAircraftCommandAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(AddAircraftCommand request)
|
public override void BuildPolicy(AddAircraftCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var company = _unitOfWork.CompanyRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.CompanyGuid, e => e.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = company?.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Aircrafts.Commands.DeleteAircraft;
|
namespace cuqmbr.TravelGuide.Application.Aircrafts.Commands.DeleteAircraft;
|
||||||
@ -9,23 +9,34 @@ public class DeleteAircraftCommandAuthorizer :
|
|||||||
AbstractRequestAuthorizer<DeleteAircraftCommand>
|
AbstractRequestAuthorizer<DeleteAircraftCommand>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public DeleteAircraftCommandAuthorizer(SessionUserService sessionUserService)
|
public DeleteAircraftCommandAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(DeleteAircraftCommand request)
|
public override void BuildPolicy(DeleteAircraftCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var vehicel = _unitOfWork.VehicleRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.Guid, e => e.Company.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = vehicel?.Company.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Aircrafts.Commands.UpdateAircraft;
|
namespace cuqmbr.TravelGuide.Application.Aircrafts.Commands.UpdateAircraft;
|
||||||
@ -9,23 +9,34 @@ public class UpdateAircraftCommandAuthorizer :
|
|||||||
AbstractRequestAuthorizer<UpdateAircraftCommand>
|
AbstractRequestAuthorizer<UpdateAircraftCommand>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public UpdateAircraftCommandAuthorizer(SessionUserService sessionUserService)
|
public UpdateAircraftCommandAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(UpdateAircraftCommand request)
|
public override void BuildPolicy(UpdateAircraftCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var company = _unitOfWork.CompanyRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.CompanyGuid, e => e.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = company?.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Aircrafts.Queries.GetAircraft;
|
namespace cuqmbr.TravelGuide.Application.Aircrafts.Queries.GetAircraft;
|
||||||
@ -9,23 +9,34 @@ public class GetAircraftQueryAuthorizer :
|
|||||||
AbstractRequestAuthorizer<GetAircraftQuery>
|
AbstractRequestAuthorizer<GetAircraftQuery>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public GetAircraftQueryAuthorizer(SessionUserService sessionUserService)
|
public GetAircraftQueryAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(GetAircraftQuery request)
|
public override void BuildPolicy(GetAircraftQuery request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var vehicel = _unitOfWork.VehicleRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.Guid, e => e.Company.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = vehicel?.Company.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Aircrafts.Queries.GetAircraftsPage;
|
namespace cuqmbr.TravelGuide.Application.Aircrafts.Queries.GetAircraftsPage;
|
||||||
@ -9,23 +9,34 @@ public class GetAircraftsPageQueryAuthorizer :
|
|||||||
AbstractRequestAuthorizer<GetAircraftsPageQuery>
|
AbstractRequestAuthorizer<GetAircraftsPageQuery>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public GetAircraftsPageQueryAuthorizer(SessionUserService sessionUserService)
|
public GetAircraftsPageQueryAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(GetAircraftsPageQuery request)
|
public override void BuildPolicy(GetAircraftsPageQuery request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var company = _unitOfWork.CompanyRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.CompanyGuid, e => e.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = company?.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
// using cuqmbr.TravelGuide.Application.Common.Services;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Authenticaion.Commands.RenewAccessToken;
|
namespace cuqmbr.TravelGuide.Application.Authenticaion.Commands.RenewAccessToken;
|
||||||
@ -7,19 +6,8 @@ namespace cuqmbr.TravelGuide.Application.Authenticaion.Commands.RenewAccessToken
|
|||||||
public class RenewAccessTokenCommandAuthorizer :
|
public class RenewAccessTokenCommandAuthorizer :
|
||||||
AbstractRequestAuthorizer<RenewAccessTokenCommand>
|
AbstractRequestAuthorizer<RenewAccessTokenCommand>
|
||||||
{
|
{
|
||||||
// private readonly SessionUserService _sessionUserService;
|
|
||||||
//
|
|
||||||
// public RenewAccessTokenCommandAuthorizer(SessionUserService currentUserService)
|
|
||||||
// {
|
|
||||||
// _sessionUserService = currentUserService;
|
|
||||||
// }
|
|
||||||
|
|
||||||
public override void BuildPolicy(RenewAccessTokenCommand request)
|
public override void BuildPolicy(RenewAccessTokenCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new AllowAllRequirement());
|
UseRequirement(new AllowAllRequirement());
|
||||||
// UseRequirement(new MustBeAuthenticatedRequirement
|
|
||||||
// {
|
|
||||||
// IsAuthenticated = _sessionUserService.IsAuthenticated
|
|
||||||
// });
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Authenticaion.Commands.RevokeRefreshToken;
|
namespace cuqmbr.TravelGuide.Application.Authenticaion.Commands.RevokeRefreshToken;
|
||||||
@ -6,8 +7,18 @@ namespace cuqmbr.TravelGuide.Application.Authenticaion.Commands.RevokeRefreshTok
|
|||||||
public class RevokeRefreshTokenCommandAuthorizer :
|
public class RevokeRefreshTokenCommandAuthorizer :
|
||||||
AbstractRequestAuthorizer<RevokeRefreshTokenCommand>
|
AbstractRequestAuthorizer<RevokeRefreshTokenCommand>
|
||||||
{
|
{
|
||||||
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
|
||||||
|
public RevokeRefreshTokenCommandAuthorizer(SessionUserService currentUserService)
|
||||||
|
{
|
||||||
|
_sessionUserService = currentUserService;
|
||||||
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(RevokeRefreshTokenCommand request)
|
public override void BuildPolicy(RevokeRefreshTokenCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new AllowAllRequirement());
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
|
{
|
||||||
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Buses.Commands.AddBus;
|
namespace cuqmbr.TravelGuide.Application.Buses.Commands.AddBus;
|
||||||
@ -9,23 +9,34 @@ public class AddBusCommandAuthorizer :
|
|||||||
AbstractRequestAuthorizer<AddBusCommand>
|
AbstractRequestAuthorizer<AddBusCommand>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public AddBusCommandAuthorizer(SessionUserService sessionUserService)
|
public AddBusCommandAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(AddBusCommand request)
|
public override void BuildPolicy(AddBusCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var company = _unitOfWork.CompanyRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.CompanyGuid, e => e.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = company?.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Buses.Commands.DeleteBus;
|
namespace cuqmbr.TravelGuide.Application.Buses.Commands.DeleteBus;
|
||||||
@ -9,23 +9,34 @@ public class DeleteBusCommandAuthorizer :
|
|||||||
AbstractRequestAuthorizer<DeleteBusCommand>
|
AbstractRequestAuthorizer<DeleteBusCommand>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public DeleteBusCommandAuthorizer(SessionUserService sessionUserService)
|
public DeleteBusCommandAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(DeleteBusCommand request)
|
public override void BuildPolicy(DeleteBusCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var vehicel = _unitOfWork.VehicleRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.Guid, e => e.Company.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = vehicel?.Company.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Buses.Commands.UpdateBus;
|
namespace cuqmbr.TravelGuide.Application.Buses.Commands.UpdateBus;
|
||||||
@ -9,23 +9,34 @@ public class UpdateBusCommandAuthorizer :
|
|||||||
AbstractRequestAuthorizer<UpdateBusCommand>
|
AbstractRequestAuthorizer<UpdateBusCommand>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public UpdateBusCommandAuthorizer(SessionUserService sessionUserService)
|
public UpdateBusCommandAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(UpdateBusCommand request)
|
public override void BuildPolicy(UpdateBusCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var company = _unitOfWork.CompanyRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.CompanyGuid, e => e.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = company?.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Buses.Queries.GetBus;
|
namespace cuqmbr.TravelGuide.Application.Buses.Queries.GetBus;
|
||||||
@ -9,23 +9,34 @@ public class GetBusQueryAuthorizer :
|
|||||||
AbstractRequestAuthorizer<GetBusQuery>
|
AbstractRequestAuthorizer<GetBusQuery>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public GetBusQueryAuthorizer(SessionUserService sessionUserService)
|
public GetBusQueryAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(GetBusQuery request)
|
public override void BuildPolicy(GetBusQuery request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var vehicel = _unitOfWork.VehicleRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.Guid, e => e.Company.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = vehicel?.Company.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Buses.Queries.GetBusesPage;
|
namespace cuqmbr.TravelGuide.Application.Buses.Queries.GetBusesPage;
|
||||||
@ -9,23 +9,34 @@ public class GetBusesPageQueryAuthorizer :
|
|||||||
AbstractRequestAuthorizer<GetBusesPageQuery>
|
AbstractRequestAuthorizer<GetBusesPageQuery>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public GetBusesPageQueryAuthorizer(SessionUserService sessionUserService)
|
public GetBusesPageQueryAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(GetBusesPageQuery request)
|
public override void BuildPolicy(GetBusesPageQuery request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var company = _unitOfWork.CompanyRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.CompanyGuid, e => e.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = company?.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ public class AddCityCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -22,7 +22,7 @@ public class DeleteCityCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -22,7 +22,7 @@ public class UpdateCityCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -19,12 +19,13 @@ public class GetCitiesPageQueryAuthorizer :
|
|||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles =
|
||||||
|
[IdentityRole.Administrator, IdentityRole.CompanyOwner],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -19,12 +19,13 @@ public class GetCityQueryAuthorizer :
|
|||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles =
|
||||||
|
[IdentityRole.Administrator, IdentityRole.CompanyOwner],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1,31 +1,22 @@
|
|||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
using Microsoft.Extensions.Localization;
|
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
using cuqmbr.TravelGuide.Domain.Enums;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Common.Authorization;
|
namespace cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
|
||||||
public class MustBeInRolesRequirement : IAuthorizationRequirement
|
public class MustBeInAnyOfRolesRequirement : IAuthorizationRequirement
|
||||||
{
|
{
|
||||||
public ICollection<IdentityRole> UserRoles { get; init; }
|
public ICollection<IdentityRole> UserRoles { get; init; }
|
||||||
public ICollection<IdentityRole> RequiredRoles { get; init; }
|
public ICollection<IdentityRole> RequiredRoles { get; init; }
|
||||||
|
|
||||||
class MustBeInRolesRequirementHandler :
|
class MustBeInAnyOfRolesRequirementHandler :
|
||||||
IAuthorizationHandler<MustBeInRolesRequirement>
|
IAuthorizationHandler<MustBeInAnyOfRolesRequirement>
|
||||||
{
|
{
|
||||||
private readonly IStringLocalizer _localizer;
|
|
||||||
|
|
||||||
public MustBeInRolesRequirementHandler(IStringLocalizer localizer)
|
|
||||||
{
|
|
||||||
_localizer = localizer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Task<AuthorizationResult> Handle(
|
public Task<AuthorizationResult> Handle(
|
||||||
MustBeInRolesRequirement request,
|
MustBeInAnyOfRolesRequirement request,
|
||||||
CancellationToken cancellationToken)
|
CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var isUserInRequiredRoles =
|
var isUserInRequiredRoles = request.UserRoles
|
||||||
request.UserRoles?.Any(ur => request.RequiredRoles.Contains(ur))
|
.Any(ur => request.RequiredRoles.Contains(ur));
|
||||||
?? false;
|
|
||||||
|
|
||||||
if (!isUserInRequiredRoles)
|
if (!isUserInRequiredRoles)
|
||||||
{
|
{
|
@ -0,0 +1,42 @@
|
|||||||
|
using MediatR.Behaviors.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Domain.Enums;
|
||||||
|
|
||||||
|
namespace cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
|
||||||
|
public class MustBeObjectOwnerOrAdminRequirement : IAuthorizationRequirement
|
||||||
|
{
|
||||||
|
public ICollection<IdentityRole>? UserRoles { get; init; }
|
||||||
|
|
||||||
|
public Guid? UserGuid { get; init; }
|
||||||
|
public Guid? RequiredGuid { get; init; }
|
||||||
|
|
||||||
|
class MustBeObjectOwnerOrAdminRequirementHandler :
|
||||||
|
IAuthorizationHandler<MustBeObjectOwnerOrAdminRequirement>
|
||||||
|
{
|
||||||
|
public Task<AuthorizationResult> Handle(
|
||||||
|
MustBeObjectOwnerOrAdminRequirement request,
|
||||||
|
CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
var isAdmin = request?.UserRoles
|
||||||
|
?.Any(ur => ur.Equals(IdentityRole.Administrator)) ??
|
||||||
|
false;
|
||||||
|
|
||||||
|
if (isAdmin)
|
||||||
|
{
|
||||||
|
return Task.FromResult(AuthorizationResult.Succeed());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (request?.UserGuid == null || request?.RequiredGuid == null)
|
||||||
|
{
|
||||||
|
return Task.FromResult(AuthorizationResult.Fail());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (request.UserGuid == request.RequiredGuid)
|
||||||
|
{
|
||||||
|
return Task.FromResult(AuthorizationResult.Succeed());
|
||||||
|
}
|
||||||
|
|
||||||
|
return Task.FromResult(AuthorizationResult.Fail());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -19,10 +19,10 @@ public class AddCompanyCommandAuthorizer :
|
|||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -19,10 +19,10 @@ public class DeleteCompanyCommandAuthorizer :
|
|||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Companies.Commands.UpdateCompany;
|
namespace cuqmbr.TravelGuide.Application.Companies.Commands.UpdateCompany;
|
||||||
@ -9,23 +9,34 @@ public class UpdateCompanyCommandAuthorizer :
|
|||||||
AbstractRequestAuthorizer<UpdateCompanyCommand>
|
AbstractRequestAuthorizer<UpdateCompanyCommand>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public UpdateCompanyCommandAuthorizer(SessionUserService sessionUserService)
|
public UpdateCompanyCommandAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(UpdateCompanyCommand request)
|
public override void BuildPolicy(UpdateCompanyCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var company = _unitOfWork.CompanyRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.Guid, e => e.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = company?.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Companies.Queries.GetCompaniesPage;
|
namespace cuqmbr.TravelGuide.Application.Companies.Queries.GetCompaniesPage;
|
||||||
@ -8,24 +6,8 @@ namespace cuqmbr.TravelGuide.Application.Companies.Queries.GetCompaniesPage;
|
|||||||
public class GetCompaniesPageQueryAuthorizer :
|
public class GetCompaniesPageQueryAuthorizer :
|
||||||
AbstractRequestAuthorizer<GetCompaniesPageQuery>
|
AbstractRequestAuthorizer<GetCompaniesPageQuery>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
|
||||||
|
|
||||||
public GetCompaniesPageQueryAuthorizer(SessionUserService sessionUserService)
|
|
||||||
{
|
|
||||||
_sessionUserService = sessionUserService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void BuildPolicy(GetCompaniesPageQuery request)
|
public override void BuildPolicy(GetCompaniesPageQuery request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new AllowAllRequirement());
|
||||||
{
|
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
|
||||||
});
|
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
|
||||||
{
|
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
|
||||||
UserRoles = _sessionUserService.Roles
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Companies.Queries.GetCompany;
|
namespace cuqmbr.TravelGuide.Application.Companies.Queries.GetCompany;
|
||||||
@ -8,24 +6,8 @@ namespace cuqmbr.TravelGuide.Application.Companies.Queries.GetCompany;
|
|||||||
public class GetCompanyQueryAuthorizer :
|
public class GetCompanyQueryAuthorizer :
|
||||||
AbstractRequestAuthorizer<GetCompanyQuery>
|
AbstractRequestAuthorizer<GetCompanyQuery>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
|
||||||
|
|
||||||
public GetCompanyQueryAuthorizer(SessionUserService sessionUserService)
|
|
||||||
{
|
|
||||||
_sessionUserService = sessionUserService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void BuildPolicy(GetCompanyQuery request)
|
public override void BuildPolicy(GetCompanyQuery request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new AllowAllRequirement());
|
||||||
{
|
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
|
||||||
});
|
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
|
||||||
{
|
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
|
||||||
UserRoles = _sessionUserService.Roles
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ public class AddCountryCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -22,7 +22,7 @@ public class DeleteCountryCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -22,7 +22,7 @@ public class UpdateCountryCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -19,12 +19,13 @@ public class GetCountriesPageQueryAuthorizer :
|
|||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles =
|
||||||
|
[IdentityRole.Administrator, IdentityRole.CompanyOwner],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -19,12 +19,13 @@ public class GetCountryQueryAuthorizer :
|
|||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles =
|
||||||
|
[IdentityRole.Administrator, IdentityRole.CompanyOwner],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Employees.Commands.AddEmployee;
|
namespace cuqmbr.TravelGuide.Application.Employees.Commands.AddEmployee;
|
||||||
@ -9,23 +9,34 @@ public class AddEmployeeCommandAuthorizer :
|
|||||||
AbstractRequestAuthorizer<AddEmployeeCommand>
|
AbstractRequestAuthorizer<AddEmployeeCommand>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public AddEmployeeCommandAuthorizer(SessionUserService sessionUserService)
|
public AddEmployeeCommandAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(AddEmployeeCommand request)
|
public override void BuildPolicy(AddEmployeeCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var company = _unitOfWork.CompanyRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.CompanyGuid, e => e.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = company?.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Employees.Commands.DeleteEmployee;
|
namespace cuqmbr.TravelGuide.Application.Employees.Commands.DeleteEmployee;
|
||||||
@ -9,23 +9,34 @@ public class DeleteEmployeeCommandAuthorizer :
|
|||||||
AbstractRequestAuthorizer<DeleteEmployeeCommand>
|
AbstractRequestAuthorizer<DeleteEmployeeCommand>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public DeleteEmployeeCommandAuthorizer(SessionUserService sessionUserService)
|
public DeleteEmployeeCommandAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(DeleteEmployeeCommand request)
|
public override void BuildPolicy(DeleteEmployeeCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var employee = _unitOfWork.EmployeeRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.Guid, e => e.Company.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = employee?.Company.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Employees.Commands.UpdateEmployee;
|
namespace cuqmbr.TravelGuide.Application.Employees.Commands.UpdateEmployee;
|
||||||
@ -9,23 +9,34 @@ public class UpdateEmployeeCommandAuthorizer :
|
|||||||
AbstractRequestAuthorizer<UpdateEmployeeCommand>
|
AbstractRequestAuthorizer<UpdateEmployeeCommand>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public UpdateEmployeeCommandAuthorizer(SessionUserService sessionUserService)
|
public UpdateEmployeeCommandAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(UpdateEmployeeCommand request)
|
public override void BuildPolicy(UpdateEmployeeCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var company = _unitOfWork.CompanyRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.CompanyGuid, e => e.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = company?.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Employees.Queries.GetEmployee;
|
namespace cuqmbr.TravelGuide.Application.Employees.Queries.GetEmployee;
|
||||||
@ -9,23 +9,34 @@ public class GetEmployeeQueryAuthorizer :
|
|||||||
AbstractRequestAuthorizer<GetEmployeeQuery>
|
AbstractRequestAuthorizer<GetEmployeeQuery>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public GetEmployeeQueryAuthorizer(SessionUserService sessionUserService)
|
public GetEmployeeQueryAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(GetEmployeeQuery request)
|
public override void BuildPolicy(GetEmployeeQuery request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var employee = _unitOfWork.EmployeeRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.Guid, e => e.Company.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = employee?.Company.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Employees.Queries.GetEmployeesPage;
|
namespace cuqmbr.TravelGuide.Application.Employees.Queries.GetEmployeesPage;
|
||||||
@ -9,23 +9,34 @@ public class GetEmployeesPageQueryAuthorizer :
|
|||||||
AbstractRequestAuthorizer<GetEmployeesPageQuery>
|
AbstractRequestAuthorizer<GetEmployeesPageQuery>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public GetEmployeesPageQueryAuthorizer(SessionUserService sessionUserService)
|
public GetEmployeesPageQueryAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(GetEmployeesPageQuery request)
|
public override void BuildPolicy(GetEmployeesPageQuery request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var company = _unitOfWork.CompanyRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.CompanyGuid, e => e.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = company?.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@ public class AddAccountCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionAccountService.IsAuthenticated
|
IsAuthenticated= _sessionAccountService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionAccountService.Roles
|
UserRoles = _sessionAccountService.Roles
|
||||||
|
@ -23,7 +23,7 @@ public class DeleteAccountCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -22,7 +22,7 @@ public class UpdateAccountCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -22,7 +22,7 @@ public class GetAccountQueryAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -22,7 +22,7 @@ public class GetAccountsPageQueryAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -22,7 +22,7 @@ public class GetRolesPageQueryAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -22,7 +22,7 @@ public class AddRegionCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -22,7 +22,7 @@ public class DeleteRegionCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -22,7 +22,7 @@ public class UpdateRegionCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -22,9 +22,10 @@ public class GetRegionQueryAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles =
|
||||||
|
[IdentityRole.Administrator, IdentityRole.CompanyOwner],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -22,9 +22,10 @@ public class GetRegionsPageQueryAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles =
|
||||||
|
[IdentityRole.Administrator, IdentityRole.CompanyOwner],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -19,12 +19,13 @@ public class AddRouteCommandAuthorizer :
|
|||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles =
|
||||||
|
[IdentityRole.Administrator, IdentityRole.CompanyOwner],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ public class DeleteRouteCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -22,7 +22,7 @@ public class UpdateRouteCommandAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -19,12 +19,13 @@ public class GetRouteQueryAuthorizer :
|
|||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles =
|
||||||
|
[IdentityRole.Administrator, IdentityRole.CompanyOwner],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -22,9 +22,10 @@ public class GetRoutesPageQueryAuthorizer :
|
|||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated= _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles =
|
||||||
|
[IdentityRole.Administrator, IdentityRole.CompanyOwner],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -19,10 +19,10 @@ public class AddTicketGroupCommandAuthorizer :
|
|||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
UseRequirement(new MustBeInAnyOfRolesRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
RequiredRoles = [IdentityRole.Administrator],
|
||||||
UserRoles = _sessionUserService.Roles
|
UserRoles = _sessionUserService.Roles
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.TicketGroups.Queries.GetTicketGroup;
|
namespace cuqmbr.TravelGuide.Application.TicketGroups.Queries.GetTicketGroup;
|
||||||
@ -9,23 +9,34 @@ public class GetTicketGroupQueryAuthorizer :
|
|||||||
AbstractRequestAuthorizer<GetTicketGroupQuery>
|
AbstractRequestAuthorizer<GetTicketGroupQuery>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public GetTicketGroupQueryAuthorizer(SessionUserService sessionUserService)
|
public GetTicketGroupQueryAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(GetTicketGroupQuery request)
|
public override void BuildPolicy(GetTicketGroupQuery request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var ticketGroup = _unitOfWork.TicketGroupRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.Guid, e => e.Account!,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = ticketGroup?.Account?.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.TicketGroups.Queries.GetTicketGroupsPage;
|
namespace cuqmbr.TravelGuide.Application.TicketGroups.Queries.GetTicketGroupsPage;
|
||||||
@ -9,23 +9,33 @@ public class GetTicketGroupsPageQueryAuthorizer :
|
|||||||
AbstractRequestAuthorizer<GetTicketGroupsPageQuery>
|
AbstractRequestAuthorizer<GetTicketGroupsPageQuery>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public GetTicketGroupsPageQueryAuthorizer(SessionUserService sessionUserService)
|
public GetTicketGroupsPageQueryAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(GetTicketGroupsPageQuery request)
|
public override void BuildPolicy(GetTicketGroupsPageQuery request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var account = _unitOfWork.AccountRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.AccountGuid, CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = account?.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Trains.Commands.AddTrain;
|
namespace cuqmbr.TravelGuide.Application.Trains.Commands.AddTrain;
|
||||||
@ -9,23 +9,34 @@ public class AddTrainCommandAuthorizer :
|
|||||||
AbstractRequestAuthorizer<AddTrainCommand>
|
AbstractRequestAuthorizer<AddTrainCommand>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public AddTrainCommandAuthorizer(SessionUserService sessionUserService)
|
public AddTrainCommandAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(AddTrainCommand request)
|
public override void BuildPolicy(AddTrainCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var company = _unitOfWork.CompanyRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.CompanyGuid, e => e.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = company?.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Trains.Commands.DeleteTrain;
|
namespace cuqmbr.TravelGuide.Application.Trains.Commands.DeleteTrain;
|
||||||
@ -9,23 +9,34 @@ public class DeleteTrainCommandAuthorizer :
|
|||||||
AbstractRequestAuthorizer<DeleteTrainCommand>
|
AbstractRequestAuthorizer<DeleteTrainCommand>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public DeleteTrainCommandAuthorizer(SessionUserService sessionUserService)
|
public DeleteTrainCommandAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(DeleteTrainCommand request)
|
public override void BuildPolicy(DeleteTrainCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var vehicel = _unitOfWork.VehicleRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.Guid, e => e.Company.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = vehicel?.Company.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Trains.Commands.UpdateTrain;
|
namespace cuqmbr.TravelGuide.Application.Trains.Commands.UpdateTrain;
|
||||||
@ -9,23 +9,34 @@ public class UpdateTrainCommandAuthorizer :
|
|||||||
AbstractRequestAuthorizer<UpdateTrainCommand>
|
AbstractRequestAuthorizer<UpdateTrainCommand>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public UpdateTrainCommandAuthorizer(SessionUserService sessionUserService)
|
public UpdateTrainCommandAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(UpdateTrainCommand request)
|
public override void BuildPolicy(UpdateTrainCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var company = _unitOfWork.CompanyRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.CompanyGuid, e => e.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = company?.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Trains.Queries.GetTrain;
|
namespace cuqmbr.TravelGuide.Application.Trains.Queries.GetTrain;
|
||||||
@ -9,23 +9,34 @@ public class GetTrainQueryAuthorizer :
|
|||||||
AbstractRequestAuthorizer<GetTrainQuery>
|
AbstractRequestAuthorizer<GetTrainQuery>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public GetTrainQueryAuthorizer(SessionUserService sessionUserService)
|
public GetTrainQueryAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(GetTrainQuery request)
|
public override void BuildPolicy(GetTrainQuery request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var vehicel = _unitOfWork.VehicleRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.Guid, e => e.Company.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = vehicel?.Company.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.Trains.Queries.GetTrainsPage;
|
namespace cuqmbr.TravelGuide.Application.Trains.Queries.GetTrainsPage;
|
||||||
@ -9,23 +9,34 @@ public class GetTrainsPageQueryAuthorizer :
|
|||||||
AbstractRequestAuthorizer<GetTrainsPageQuery>
|
AbstractRequestAuthorizer<GetTrainsPageQuery>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public GetTrainsPageQueryAuthorizer(SessionUserService sessionUserService)
|
public GetTrainsPageQueryAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(GetTrainsPageQuery request)
|
public override void BuildPolicy(GetTrainsPageQuery request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var company = _unitOfWork.CompanyRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.CompanyGuid, e => e.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = company?.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application
|
namespace cuqmbr.TravelGuide.Application
|
||||||
@ -9,25 +7,8 @@ namespace cuqmbr.TravelGuide.Application
|
|||||||
public class SearchAllQueryAuthorizer :
|
public class SearchAllQueryAuthorizer :
|
||||||
AbstractRequestAuthorizer<SearchAllQuery>
|
AbstractRequestAuthorizer<SearchAllQuery>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
|
||||||
|
|
||||||
public SearchAllQueryAuthorizer(
|
|
||||||
SessionUserService sessionUserService)
|
|
||||||
{
|
|
||||||
_sessionUserService = sessionUserService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void BuildPolicy(SearchAllQuery request)
|
public override void BuildPolicy(SearchAllQuery request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new AllowAllRequirement());
|
||||||
{
|
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
|
||||||
});
|
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
|
||||||
{
|
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
|
||||||
UserRoles = _sessionUserService.Roles
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application
|
namespace cuqmbr.TravelGuide.Application
|
||||||
@ -9,25 +7,8 @@ namespace cuqmbr.TravelGuide.Application
|
|||||||
public class SearchShortestQueryAuthorizer :
|
public class SearchShortestQueryAuthorizer :
|
||||||
AbstractRequestAuthorizer<SearchShortestQuery>
|
AbstractRequestAuthorizer<SearchShortestQuery>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
|
||||||
|
|
||||||
public SearchShortestQueryAuthorizer(
|
|
||||||
SessionUserService sessionUserService)
|
|
||||||
{
|
|
||||||
_sessionUserService = sessionUserService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void BuildPolicy(SearchShortestQuery request)
|
public override void BuildPolicy(SearchShortestQuery request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new AllowAllRequirement());
|
||||||
{
|
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
|
||||||
});
|
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
|
||||||
{
|
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
|
||||||
UserRoles = _sessionUserService.Roles
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.VehicleEnrollments
|
namespace cuqmbr.TravelGuide.Application.VehicleEnrollments
|
||||||
@ -10,23 +10,51 @@ public class AddVehicleEnrollmentCommandAuthorizer :
|
|||||||
AbstractRequestAuthorizer<AddVehicleEnrollmentCommand>
|
AbstractRequestAuthorizer<AddVehicleEnrollmentCommand>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public AddVehicleEnrollmentCommandAuthorizer(SessionUserService sessionUserService)
|
public AddVehicleEnrollmentCommandAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(AddVehicleEnrollmentCommand request)
|
public override void BuildPolicy(AddVehicleEnrollmentCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var vehicle = _unitOfWork.VehicleRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.VehicleGuid, e => e.Company.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
var employees = _unitOfWork.EmployeeRepository
|
||||||
|
.GetPageAsync(
|
||||||
|
e => request.EmployeeGuids.Contains(e.Guid),
|
||||||
|
e => e.Company.Account,
|
||||||
|
1, request.EmployeeGuids.Count, CancellationToken.None)
|
||||||
|
.Result.Items;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = vehicle?.Company.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
|
|
||||||
|
foreach (var employee in employees)
|
||||||
|
{
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
|
{
|
||||||
|
UserRoles = _sessionUserService.Roles,
|
||||||
|
RequiredGuid = employee.Company.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.VehicleEnrollments.Commands.DeleteVehicleEnrollment;
|
namespace cuqmbr.TravelGuide.Application.VehicleEnrollments.Commands.DeleteVehicleEnrollment;
|
||||||
@ -9,23 +9,34 @@ public class DeleteVehicleEnrollmentCommandAuthorizer :
|
|||||||
AbstractRequestAuthorizer<DeleteVehicleEnrollmentCommand>
|
AbstractRequestAuthorizer<DeleteVehicleEnrollmentCommand>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public DeleteVehicleEnrollmentCommandAuthorizer(SessionUserService sessionUserService)
|
public DeleteVehicleEnrollmentCommandAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(DeleteVehicleEnrollmentCommand request)
|
public override void BuildPolicy(DeleteVehicleEnrollmentCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var vehicelEnrollment = _unitOfWork.VehicleEnrollmentRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.Guid, e => e.Vehicle.Company.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = vehicelEnrollment?.Vehicle.Company.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.VehicleEnrollments
|
namespace cuqmbr.TravelGuide.Application.VehicleEnrollments
|
||||||
@ -10,24 +10,51 @@ public class UpdateVehicleEnrollmentCommandAuthorizer :
|
|||||||
AbstractRequestAuthorizer<UpdateVehicleEnrollmentCommand>
|
AbstractRequestAuthorizer<UpdateVehicleEnrollmentCommand>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public UpdateVehicleEnrollmentCommandAuthorizer(
|
public UpdateVehicleEnrollmentCommandAuthorizer(
|
||||||
SessionUserService sessionUserService)
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(UpdateVehicleEnrollmentCommand request)
|
public override void BuildPolicy(UpdateVehicleEnrollmentCommand request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var vehicleEnrollment = _unitOfWork.VehicleEnrollmentRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.Guid, e => e.Vehicle.Company.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
var employees = _unitOfWork.EmployeeRepository
|
||||||
|
.GetPageAsync(
|
||||||
|
e => request.EmployeeGuids.Contains(e.Guid),
|
||||||
|
e => e.Company.Account,
|
||||||
|
1, request.EmployeeGuids.Count, CancellationToken.None)
|
||||||
|
.Result.Items;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = vehicleEnrollment?.Vehicle.Company.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
|
|
||||||
|
foreach (var employee in employees)
|
||||||
|
{
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
|
{
|
||||||
|
UserRoles = _sessionUserService.Roles,
|
||||||
|
RequiredGuid = employee.Company.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.VehicleEnrollments
|
namespace cuqmbr.TravelGuide.Application.VehicleEnrollments
|
||||||
@ -10,23 +10,34 @@ public class GetVehicleEnrollmentQueryAuthorizer :
|
|||||||
AbstractRequestAuthorizer<GetVehicleEnrollmentQuery>
|
AbstractRequestAuthorizer<GetVehicleEnrollmentQuery>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public GetVehicleEnrollmentQueryAuthorizer(SessionUserService sessionUserService)
|
public GetVehicleEnrollmentQueryAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(GetVehicleEnrollmentQuery request)
|
public override void BuildPolicy(GetVehicleEnrollmentQuery request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var vehicelEnrollment = _unitOfWork.VehicleEnrollmentRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.Guid, e => e.Vehicle.Company.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = vehicelEnrollment?.Vehicle.Company.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
using cuqmbr.TravelGuide.Application.Common.Authorization;
|
||||||
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
||||||
using cuqmbr.TravelGuide.Application.Common.Services;
|
using cuqmbr.TravelGuide.Application.Common.Services;
|
||||||
using cuqmbr.TravelGuide.Domain.Enums;
|
|
||||||
using MediatR.Behaviors.Authorization;
|
using MediatR.Behaviors.Authorization;
|
||||||
|
|
||||||
namespace cuqmbr.TravelGuide.Application.VehicleEnrollments.Queries.GetVehicleEnrollmentsPage;
|
namespace cuqmbr.TravelGuide.Application.VehicleEnrollments.Queries.GetVehicleEnrollmentsPage;
|
||||||
@ -9,23 +9,34 @@ public class GetVehicleEnrollmentsPageQueryAuthorizer :
|
|||||||
AbstractRequestAuthorizer<GetVehicleEnrollmentsPageQuery>
|
AbstractRequestAuthorizer<GetVehicleEnrollmentsPageQuery>
|
||||||
{
|
{
|
||||||
private readonly SessionUserService _sessionUserService;
|
private readonly SessionUserService _sessionUserService;
|
||||||
|
private readonly UnitOfWork _unitOfWork;
|
||||||
|
|
||||||
public GetVehicleEnrollmentsPageQueryAuthorizer(SessionUserService sessionUserService)
|
public GetVehicleEnrollmentsPageQueryAuthorizer(
|
||||||
|
SessionUserService sessionUserService,
|
||||||
|
UnitOfWork unitOfWork)
|
||||||
{
|
{
|
||||||
_sessionUserService = sessionUserService;
|
_sessionUserService = sessionUserService;
|
||||||
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void BuildPolicy(GetVehicleEnrollmentsPageQuery request)
|
public override void BuildPolicy(GetVehicleEnrollmentsPageQuery request)
|
||||||
{
|
{
|
||||||
UseRequirement(new MustBeAuthenticatedRequirement
|
UseRequirement(new MustBeAuthenticatedRequirement
|
||||||
{
|
{
|
||||||
IsAuthenticated= _sessionUserService.IsAuthenticated
|
IsAuthenticated = _sessionUserService.IsAuthenticated
|
||||||
});
|
});
|
||||||
|
|
||||||
UseRequirement(new MustBeInRolesRequirement
|
var vehicles = _unitOfWork.VehicleRepository
|
||||||
|
.GetOneAsync(
|
||||||
|
e => e.Guid == request.VehicleGuid, e => e.Company.Account,
|
||||||
|
CancellationToken.None)
|
||||||
|
.Result;
|
||||||
|
|
||||||
|
UseRequirement(new MustBeObjectOwnerOrAdminRequirement
|
||||||
{
|
{
|
||||||
RequiredRoles = [IdentityRole.Administrator],
|
UserRoles = _sessionUserService.Roles,
|
||||||
UserRoles = _sessionUserService.Roles
|
RequiredGuid = vehicles?.Company.Account.Guid,
|
||||||
|
UserGuid = _sessionUserService.Guid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user