gehgassi_backend/gehGassi.Web/Auth/Attributes/HasPermissionAttribute.cs

33 lines
1.0 KiB
C#

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