mirror of https://github.com/abpframework/abp
Merge pull request #17616 from abpframework/auto-merge/rel-7-3/2179
Merge branch rel-7.4 with rel-7.3pull/17617/head
commit
cb21652fe8
@ -0,0 +1,49 @@
|
||||
using System.Threading.Tasks;
|
||||
using Shouldly;
|
||||
using Volo.Abp.Authorization.Permissions;
|
||||
using Xunit;
|
||||
|
||||
namespace Volo.Abp.Authorization;
|
||||
|
||||
public class PermissionChecker_Tests: AuthorizationTestBase
|
||||
{
|
||||
private readonly IPermissionChecker _permissionChecker;
|
||||
|
||||
public PermissionChecker_Tests()
|
||||
{
|
||||
_permissionChecker = GetRequiredService<IPermissionChecker>();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task IsGrantedAsync()
|
||||
{
|
||||
(await _permissionChecker.IsGrantedAsync("MyPermission5")).ShouldBe(true);
|
||||
(await _permissionChecker.IsGrantedAsync("UndefinedPermission")).ShouldBe(false);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task IsGranted_Multiple_Result_Async()
|
||||
{
|
||||
var result = await _permissionChecker.IsGrantedAsync(new []
|
||||
{
|
||||
"MyPermission1",
|
||||
"MyPermission2",
|
||||
"UndefinedPermission",
|
||||
"MyPermission3",
|
||||
"MyPermission4",
|
||||
"MyPermission5",
|
||||
"MyPermission6",
|
||||
"MyPermission7"
|
||||
});
|
||||
|
||||
result.Result["MyPermission1"].ShouldBe(PermissionGrantResult.Undefined);
|
||||
result.Result["MyPermission2"].ShouldBe(PermissionGrantResult.Prohibited);
|
||||
result.Result["UndefinedPermission"].ShouldBe(PermissionGrantResult.Prohibited);
|
||||
result.Result["MyPermission3"].ShouldBe(PermissionGrantResult.Granted);
|
||||
result.Result["MyPermission4"].ShouldBe(PermissionGrantResult.Prohibited);
|
||||
result.Result["MyPermission5"].ShouldBe(PermissionGrantResult.Granted);
|
||||
result.Result["MyPermission6"].ShouldBe(PermissionGrantResult.Granted);
|
||||
result.Result["MyPermission7"].ShouldBe(PermissionGrantResult.Granted);
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Volo.Abp.Authorization.Permissions;
|
||||
|
||||
namespace Volo.Abp.Authorization.TestServices;
|
||||
|
||||
public class TestPermissionValueProvider1 : PermissionValueProvider
|
||||
{
|
||||
public TestPermissionValueProvider1(IPermissionStore permissionStore) : base(permissionStore)
|
||||
{
|
||||
}
|
||||
|
||||
public override string Name => "TestPermissionValueProvider1";
|
||||
|
||||
public override Task<PermissionGrantResult> CheckAsync(PermissionValueCheckContext context)
|
||||
{
|
||||
var result = PermissionGrantResult.Undefined;
|
||||
if (context.Permission.Name == "MyPermission6")
|
||||
{
|
||||
result = PermissionGrantResult.Granted;
|
||||
}
|
||||
|
||||
return Task.FromResult(result);
|
||||
}
|
||||
|
||||
public override Task<MultiplePermissionGrantResult> CheckAsync(PermissionValuesCheckContext context)
|
||||
{
|
||||
var result = new MultiplePermissionGrantResult();
|
||||
foreach (var name in context.Permissions.Select(x => x.Name))
|
||||
{
|
||||
result.Result.Add(name, name == "MyPermission6"
|
||||
? PermissionGrantResult.Granted
|
||||
: PermissionGrantResult.Undefined);
|
||||
}
|
||||
|
||||
return Task.FromResult(result);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Volo.Abp.Authorization.Permissions;
|
||||
|
||||
namespace Volo.Abp.Authorization.TestServices;
|
||||
|
||||
public class TestPermissionValueProvider2 : PermissionValueProvider
|
||||
{
|
||||
public TestPermissionValueProvider2(IPermissionStore permissionStore) : base(permissionStore)
|
||||
{
|
||||
}
|
||||
|
||||
public override string Name => "TestPermissionValueProvider2";
|
||||
|
||||
public override Task<PermissionGrantResult> CheckAsync(PermissionValueCheckContext context)
|
||||
{
|
||||
var result = PermissionGrantResult.Undefined;
|
||||
if (context.Permission.Name == "MyPermission7")
|
||||
{
|
||||
result = PermissionGrantResult.Granted;
|
||||
}
|
||||
|
||||
return Task.FromResult(result);
|
||||
}
|
||||
|
||||
public override Task<MultiplePermissionGrantResult> CheckAsync(PermissionValuesCheckContext context)
|
||||
{
|
||||
var result = new MultiplePermissionGrantResult();
|
||||
foreach (var name in context.Permissions.Select(x => x.Name))
|
||||
{
|
||||
result.Result.Add(name, name == "MyPermission7"
|
||||
? PermissionGrantResult.Granted
|
||||
: PermissionGrantResult.Undefined);
|
||||
}
|
||||
|
||||
return Task.FromResult(result);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue