Granular permission back end done

This commit is contained in:
2026-04-11 19:03:45 +09:30
parent 3fe90355e0
commit 611f695db6
51 changed files with 3322 additions and 803 deletions
@@ -0,0 +1,20 @@
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}";
}
@@ -0,0 +1,7 @@
namespace FJPSite.Attributes;
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public class SeedMigrationAttribute(string migration) : Attribute
{
public string Migration { get; set; } = migration;
}