Added SavedEventAuthentication

This commit is contained in:
quentin 2024-07-13 13:08:59 -05:00
parent 588abd2712
commit 4afb3b0c54
5 changed files with 69 additions and 3 deletions

View File

@ -0,0 +1,14 @@
namespace API.Authentication.GrantNames
{
public static class SavedEventGrantNames
{
public const string CanGetAll = "api.savedEvent.get.all";
public const string CanGetAny = "api.savedEvent.get.any";
public const string CanGet = "api.savedEvent.get";
public const string CanAdd = "api.savedEvent.add";
public const string CanUpdateAny = "api.savedEvent.update.any";
public const string CanUpdate = "api.savedEvent.update";
public const string CanDeleteAny = "api.savedEvent.delete.any";
public const string CanDelete = "api.savedEvent.delete";
}
}

View File

@ -0,0 +1,9 @@
using API.DTO.Base;
using DAL.Models;
namespace API.Authentication.Interfaces
{
public interface ISavedEventAuthentication : IGenericAuthentication<SavedEventDTO, SavedEvent>
{
}
}

View File

@ -0,0 +1,43 @@
using API.Authentication.GrantNames;
using API.Authentication.Interfaces;
using API.DTO.Base;
using API.Services;
using DAL.Models;
namespace API.Authentication
{
public class SavedEventAuthentication : ISavedEventAuthentication
{
private readonly GrantService _grantService;
private readonly ILogger<SavedEventAuthentication> _logger;
public SavedEventAuthentication(ILogger<SavedEventAuthentication> logger, GrantService grantService)
{
_logger = logger;
_grantService = grantService;
}
public bool canGetAll(User user)
{
return _grantService.hasGrant(user.permissionId, SavedEventGrantNames.CanGetAll);
}
public bool canGet(SavedEvent model, User user)
{
return _grantService.hasGrant(user.permissionId, SavedEventGrantNames.CanGetAny) ||
_grantService.getULongValues(user.permissionId, SavedEventGrantNames.CanGet).Exists(x => x == model.id);
}
public bool canAdd(SavedEventDTO item, User user)
{
return _grantService.hasGrant(user.permissionId, SavedEventGrantNames.CanAdd);
}
public bool canUpdate(SavedEvent model, User user)
{
return _grantService.hasGrant(user.permissionId, SavedEventGrantNames.CanUpdateAny) ||
_grantService.getULongValues(user.permissionId, SavedEventGrantNames.CanUpdate).Exists(x => x == model.id);
}
public bool canDelete(SavedEvent model, User user)
{
return _grantService.hasGrant(user.permissionId, SavedEventGrantNames.CanDeleteAny) ||
_grantService.getULongValues(user.permissionId, SavedEventGrantNames.CanDelete).Exists(x => x == model.id);
}
}
}

View File

@ -10,7 +10,7 @@ namespace API.Controllers
{
[ApiController]
[Route("api/v1/[controller]")]
public class SavedEventController : CRUDBase<SavedEventController, SavedEventDTO, SavedEventUpdateDTO, SavedEvent, AuditSavedEvent, IYesAuthentication, SavedEventService>
public class SavedEventController : CRUDBase<SavedEventController, SavedEventDTO, SavedEventUpdateDTO, SavedEvent, AuditSavedEvent, ISavedEventAuthentication, SavedEventService>
{
public SavedEventController(ILogger<SavedEventController> logger, UserService userService, SavedEventService service) : base(logger, userService, service)
{

View File

@ -6,10 +6,10 @@ using DAL.Models.Audits;
namespace API.Services
{
public class SavedEventService : ServiceBase<SavedEventService, SavedEventDTO, SavedEvent, AuditSavedEvent, IYesAuthentication>
public class SavedEventService : ServiceBase<SavedEventService, SavedEventDTO, SavedEvent, AuditSavedEvent, ISavedEventAuthentication>
{
public SavedEventService(ILogger<SavedEventService> logger, SASGContext context, IYesAuthentication auth) : base(logger, context, auth)
public SavedEventService(ILogger<SavedEventService> logger, SASGContext context, ISavedEventAuthentication auth) : base(logger, context, auth)
{
}
}