AdminPanel/Netina.AdminPanel.PWA/Utilities/PermissionAuthorizeAttribut...

32 lines
857 B
C#

using Microsoft.AspNetCore.Mvc.Filters;
using Netina.Domain.Models.Claims;
using AuthorizeAttribute = Microsoft.AspNetCore.Authorization.AuthorizeAttribute;
namespace Netina.AdminPanel.PWA.Utilities;
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
public class PermissionAuthorizeAttribute : AuthorizeAttribute, IAuthorizationFilter
{
private readonly string[] _permissions;
public PermissionAuthorizeAttribute(params string[] permission)
{
_permissions = permission;
}
public void OnAuthorization(AuthorizationFilterContext context)
{
var user = context.HttpContext.User;
var permissions = user.Claims?.Where(c => c.Type == CustomClaimType.Permission)?.ToList();
if (permissions == null)
{
}
else
{
}
}
}