using System.Collections.Generic;
using System.Linq;
using gehGassi.Permissions;
using gehGassi.Web.Auth.Filters;
using Microsoft.AspNetCore.Mvc;
namespace gehGassi.Web.Auth.Attributes
{
///
/// Attribut zur Prüfung ob ein Benutzer über alle Permissions verfügt
///
public class HasPermissionsAttribute : TypeFilterAttribute
{
private List _permissions;
public List Permissions
{
get => _permissions;
set
{
_permissions = value;
Arguments = new object[] { new PermissionSettings() { Permissions = _permissions.ToList(), All = true } };
}
}
public HasPermissionsAttribute(params Permission[] permissions) : base(typeof(AuthorizePermissionsPolicyFilter))
{
_permissions = permissions.ToList();
Arguments = new object[] { new PermissionSettings() { Permissions = _permissions.ToList(), All = true } };
}
}
public class PermissionSettings
{
public List Permissions { get; set; }
public bool All { get; set; }
}
}