Files
Yi.Framework/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Authorization/DefaultPermissionHandler.cs
2023-12-11 09:55:12 +08:00

36 lines
1.1 KiB
C#

using Microsoft.AspNetCore.Http;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Users;
using Yi.Framework.Core.Extensions;
using Yi.Framework.Rbac.Domain.Shared.Consts;
namespace Yi.Framework.Rbac.Domain.Authorization
{
public class DefaultPermissionHandler : IPermissionHandler, ITransientDependency
{
private ICurrentUser _currentUser { get; set; }
private IHttpContextAccessor _httpContextAccessor;
public DefaultPermissionHandler(ICurrentUser currentUser, IHttpContextAccessor httpContextAccessor)
{
_currentUser = currentUser;
_httpContextAccessor = httpContextAccessor;
}
public bool IsPass(string permission)
{
var permissions = _httpContextAccessor.HttpContext.GetUserPermissions(TokenTypeConst.Permission);
if (permissions is not null)
{
if (permissions.Contains("*:*:*"))
{
return true;
}
return permissions.Contains(permission);
}
return false;
}
}
}