51 lines
1.6 KiB
C#
51 lines
1.6 KiB
C#
using API.Authentication.GrantNames;
|
|
using API.Authentication.Interfaces;
|
|
using API.DTO.Base;
|
|
using API.Services;
|
|
using API.Services.Interfaces;
|
|
using DAL.Models;
|
|
|
|
namespace API.Authentication
|
|
{
|
|
public class EventAuthentication : IEventAuthentication
|
|
{
|
|
private readonly IGrantManager _grantManager;
|
|
private readonly ILogger<EventAuthentication> _logger;
|
|
|
|
public EventAuthentication(IGrantManager grantManager, ILogger<EventAuthentication> logger)
|
|
{
|
|
_grantManager = grantManager;
|
|
_logger = logger;
|
|
}
|
|
|
|
public bool canGetAll(User user)
|
|
{
|
|
return _grantManager.hasGrant(user.permissionId, EventGrantNames.CanGetAll);
|
|
}
|
|
public bool canGet(Event model, User user)
|
|
{
|
|
return _grantManager.hasGrant(user.permissionId, EventGrantNames.CanGetAny) ||
|
|
_grantManager.getULongValues(user.permissionId, EventGrantNames.CanGet).Exists(x => x == model.id);
|
|
}
|
|
public bool canAdd(EventDTO item, User user)
|
|
{
|
|
return _grantManager.hasGrant(user.permissionId, EventGrantNames.CanAdd);
|
|
}
|
|
public bool canUpdate(Event model, User user)
|
|
{
|
|
return _grantManager.hasGrant(user.permissionId, EventGrantNames.CanUpdateAny) ||
|
|
_grantManager.getULongValues(user.permissionId, EventGrantNames.CanUpdate).Exists(x => x == model.id);
|
|
}
|
|
public bool canDelete(Event model, User user)
|
|
{
|
|
return _grantManager.hasGrant(user.permissionId, EventGrantNames.CanDeleteAny) ||
|
|
_grantManager.getULongValues(user.permissionId, EventGrantNames.CanDelete).Exists(x => x == model.id);
|
|
}
|
|
public bool canCheckSelfSignup(User user)
|
|
{
|
|
//todo grants
|
|
return true;
|
|
}
|
|
}
|
|
}
|