Files
FjpSite/FJPSite/Attributes/HasPermissionAttribute.cs

20 lines
674 B
C#

using FJPSite.Enums;
using Microsoft.AspNetCore.Authorization;
namespace FJPSite.Attributes;
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class HasPermissionAttribute : AuthorizeAttribute
{
public FeatureEnum Feature { get; }
public ActionEnum Action { get; }
public HasPermissionAttribute(FeatureEnum feature, ActionEnum action)
{
Feature = feature;
Action = action;
Policy = BuildPolicyName(feature, action);
}
private static string BuildPolicyName(FeatureEnum feature, ActionEnum action)
{
return $"Permission.{feature}.{action}";
}