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 _logger; public EventAuthentication(IGrantManager grantManager, ILogger 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; } } }