You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
abp/modules/permission-management/test/Volo.Abp.PermissionManageme.../Volo/Abp/PermissionManagement/TestRequireRolePermissionSt...

26 lines
927 B

using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Security.Claims;
namespace Volo.Abp.PermissionManagement
{
public class TestRequireRolePermissionStateProvider : IPermissionStateProvider
{
private readonly List<string> _allowRoles = new List<string>();
public TestRequireRolePermissionStateProvider(params string[] roles)
{
_allowRoles.AddRange(roles);
}
public Task<bool> IsEnabledAsync(PermissionStateContext context)
{
var currentPrincipalAccessor = context.ServiceProvider.GetRequiredService<ICurrentPrincipalAccessor>();
return Task.FromResult(currentPrincipalAccessor.Principal != null && _allowRoles.Any(role => currentPrincipalAccessor.Principal.IsInRole(role)));
}
}
}