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 Kunden hat /// public class CustomerAuthorizeAttribute : 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 CustomerRequirement(_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 CustomerRequirement(_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 CustomerAuthorizeAttribute(string parameterName, bool allowAdmin = false) : base(typeof(AuthorizeCustomerPolicyFilter)) { _parameterName = parameterName; _allowAdmin = allowAdmin; Arguments = new object[] { new CustomerRequirement(parameterName, allowAdmin) }; } } }