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; } } }