using gehGassi.Web.Auth.Filters; using gehGassi.Web.Auth.Requirements; using Microsoft.AspNetCore.Mvc; namespace gehGassi.Web.Auth.Attributes { /// /// Attribut zur Prüfung ob ein Benutzer Zugriff auf einen App-User hat /// public class AppUserAuthorizeAttribute : TypeFilterAttribute { private string _parameterName; private bool _allowAdmin; /// /// Parameter der für die Prüfung herangezogen werden soll /// public string ParameterName { get => _parameterName; set { _parameterName = value; Arguments = new object[] { new AppUserRequirement(_parameterName, _allowAdmin) }; } } /// /// Soll ein Administrator Zugriff haben auch wenn er nicht den Mandanten zugeordnet hat? /// public bool AllowAdmin { get => _allowAdmin; set { _allowAdmin = value; Arguments = new object[] { new AppUserRequirement(_parameterName, _allowAdmin) }; } } /// /// Erstellt eine Instanz /// /// Parameter der für die Prüfung herangezogen werden soll /// Soll ein Administrator Zugriff haben auch wenn er nicht den Mandanten zugeordnet hat? public AppUserAuthorizeAttribute(string parameterName, bool allowAdmin = false) : base(typeof(AuthorizeAppUserPolicyFilter)) { _parameterName = parameterName; _allowAdmin = allowAdmin; Arguments = new object[] { new AppUserRequirement(parameterName, allowAdmin) }; } } }