36 lines
1.1 KiB
C#
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;
|
|
}
|
|
}
|
|
} |