using System; using System.Collections.Generic; using System.Runtime.CompilerServices; namespace AsbCloudWebApi { [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)] public class PermissionAttribute : Attribute { public static SortedSet Registered { get; } = new SortedSet(); public string Name { get; set; } = null!; /// /// Проверка наличия у пользователя разрешения с именем "{ControllerName}.{http_method}". /// Пример автоматической генерации имени: "Message.get", где "Message" - имя контроллера MessageController. /// public PermissionAttribute() { } /// /// Проверка наличия у пользователя указанного разрешения. /// /// Имя разрешения (default = ControllerName.http_method) public PermissionAttribute(string name) { Name = name; Registered.Add(name); } } }