sanAntonioSeniorGolf/API/Authentication/GrantAuthentication.cs

52 lines
1.7 KiB
C#
Raw Normal View History

2024-07-12 23:29:28 -05:00
using API.Authentication.GrantNames;
using API.Authentication.Interfaces;
using API.DTO.Base;
using API.Services;
using API.Services.Interfaces;
2024-07-12 23:29:28 -05:00
using DAL.Models;
namespace API.Authentication
{
public class GrantAuthentication : IGrantAuthentication
{
private readonly IGrantManager _grantManager;
2024-07-12 23:29:28 -05:00
private readonly ILogger<GrantAuthentication> _logger;
public GrantAuthentication(IGrantManager grantManager, ILogger<GrantAuthentication> logger)
2024-07-12 23:29:28 -05:00
{
_grantManager = grantManager;
2024-07-12 23:29:28 -05:00
_logger = logger;
}
public bool canGetAll(User user)
{
return _grantManager.hasGrant(user.permissionId, GrantGrantNames.CanGetAll);
2024-07-12 23:29:28 -05:00
}
public bool canGet(Grant model, User user)
{
return _grantManager.hasGrant(user.permissionId, GrantGrantNames.CanGetAny) ||
_grantManager.getULongValues(user.permissionId, GrantGrantNames.CanGet).Exists(x => x == model.id);
2024-07-12 23:29:28 -05:00
}
public bool canAdd(GrantDTO item, User user)
{
return _grantManager.hasGrant(user.permissionId, GrantGrantNames.CanAdd) &&
_grantManager.hasGrant(user.permissionId, item.name);
2024-07-12 23:29:28 -05:00
}
public bool canUpdate(Grant model, User user)
{
// Doesn't make sense to update the name of a grant. The updater can just delete and remake.
return false;
}
public bool canDelete(Grant model, User user)
{
return (_grantManager.hasGrant(user.permissionId, GrantGrantNames.CanDeleteAny) ||
_grantManager.getULongValues(user.permissionId, GrantGrantNames.CanDelete).Exists(x => x == model.id))
&& _grantManager.hasGrant(user.permissionId, model.name);
2024-07-12 23:29:28 -05:00
}
2024-08-31 20:59:42 -05:00
public bool canGetMine(User user)
{
return _grantManager.hasGrant(user.permissionId, GrantGrantNames.CanGetSelf);
}
2024-07-12 23:29:28 -05:00
}
}