DD.WellWorkover.Cloud/AsbCloudWebApi/PermissionAttribute.cs

31 lines
1.2 KiB
C#
Raw Normal View History

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<string> Registered { get; } = new SortedSet<string>();
public string Name { get; set; } = null!;
/// <summary>
/// Проверка наличия у пользователя разрешения с именем "{ControllerName}.{http_method}".
/// Пример автоматической генерации имени: "Message.get", где "Message" - имя контроллера MessageController.
/// </summary>
public PermissionAttribute() { }
/// <summary>
/// Проверка наличия у пользователя указанного разрешения.
/// </summary>
/// <param name="name">Имя разрешения (default = ControllerName.http_method)</param>
public PermissionAttribute(string name)
{
Name = name;
Registered.Add(name);
}
}
}