sanAntonioSeniorGolf/API/Authentication/ImageAuthentication.cs

45 lines
1.5 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 ImageAuthentication : IImageAuthentication
{
private readonly IGrantManager _grantManager;
private readonly ILogger<ImageAuthentication> _logger;
public ImageAuthentication(ILogger<ImageAuthentication> logger, IGrantManager grantManager)
{
_logger = logger;
_grantManager = grantManager;
}
public bool canGetAll(User user)
{
return _grantManager.hasGrant(user.permissionId, ImageGrantNames.CanGetAll);
}
public bool canGet(Image model, User user)
{
return _grantManager.hasGrant(user.permissionId, ImageGrantNames.CanGetAny) ||
_grantManager.getULongValues(user.permissionId, ImageGrantNames.CanGet).Exists(x => x == model.id);
}
public bool canAdd(ImageDTO item, User user)
{
return _grantManager.hasGrant(user.permissionId, ImageGrantNames.CanAdd);
}
public bool canUpdate(Image model, User user)
{
return _grantManager.hasGrant(user.permissionId, ImageGrantNames.CanUpdateAny) ||
_grantManager.getULongValues(user.permissionId, ImageGrantNames.CanUpdate).Exists(x => x == model.id);
}
public bool canDelete(Image model, User user)
{
return _grantManager.hasGrant(user.permissionId, ImageGrantNames.CanDeleteAny) ||
_grantManager.getULongValues(user.permissionId, ImageGrantNames.CanDelete).Exists(x => x == model.id);
}
}
}