33 lines
1.0 KiB
C#
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 } };
|
|
}
|
|
}
|
|
}
|