20 lines
674 B
C#
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}";
|
|
} |