Browse Source
Add prohibited permission value providers and update permission checks
pull/24283/head
maliming
9 months ago
No known key found for this signature in database
GPG Key ID: A646B9CB645ECEA4
4 changed files with
45 additions and
6 deletions
-
framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/AbpAuthorizationTestModule.cs
-
framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/FakePermissionStore.cs
-
framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/TestProhibitedPermissionValueProvider1.cs
-
framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/TestProhibitedPermissionValueProvider2.cs
|
|
|
@ -31,7 +31,8 @@ public class AbpAuthorizationTestModule : AbpModule |
|
|
|
{ |
|
|
|
options.ValueProviders.Add<TestPermissionValueProvider1>(); |
|
|
|
options.ValueProviders.Add<TestPermissionValueProvider2>(); |
|
|
|
options.ValueProviders.Add<TestProhibitedPermissionValueProvider>(); |
|
|
|
options.ValueProviders.Add<TestProhibitedPermissionValueProvider1>(); |
|
|
|
options.ValueProviders.Add<TestProhibitedPermissionValueProvider2>(); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -8,7 +8,7 @@ public class FakePermissionStore : IPermissionStore, ITransientDependency |
|
|
|
{ |
|
|
|
public Task<bool> IsGrantedAsync(string name, string providerName, string providerKey) |
|
|
|
{ |
|
|
|
return Task.FromResult(name == "MyPermission3" || name == "MyPermission5" || name == "MyPermission8"); |
|
|
|
return Task.FromResult(name == "MyPermission3" || name == "MyPermission5"); |
|
|
|
} |
|
|
|
|
|
|
|
public Task<MultiplePermissionGrantResult> IsGrantedAsync(string[] names, string providerName, string providerKey) |
|
|
|
@ -16,7 +16,7 @@ public class FakePermissionStore : IPermissionStore, ITransientDependency |
|
|
|
var result = new MultiplePermissionGrantResult(); |
|
|
|
foreach (var name in names) |
|
|
|
{ |
|
|
|
result.Result.Add(name, name == "MyPermission3" || name == "MyPermission5" || name == "MyPermission8" |
|
|
|
result.Result.Add(name, name == "MyPermission3" || name == "MyPermission5" |
|
|
|
? PermissionGrantResult.Granted |
|
|
|
: PermissionGrantResult.Prohibited); |
|
|
|
} |
|
|
|
|
|
|
|
@ -0,0 +1,38 @@ |
|
|
|
using System.Linq; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using Volo.Abp.Authorization.Permissions; |
|
|
|
|
|
|
|
namespace Volo.Abp.Authorization.TestServices; |
|
|
|
|
|
|
|
public class TestProhibitedPermissionValueProvider1 : PermissionValueProvider |
|
|
|
{ |
|
|
|
public TestProhibitedPermissionValueProvider1(IPermissionStore permissionStore) : base(permissionStore) |
|
|
|
{ |
|
|
|
} |
|
|
|
|
|
|
|
public override string Name => "TestProhibitedPermissionValueProvider1"; |
|
|
|
|
|
|
|
public override Task<PermissionGrantResult> CheckAsync(PermissionValueCheckContext context) |
|
|
|
{ |
|
|
|
var result = PermissionGrantResult.Undefined; |
|
|
|
if (context.Permission.Name == "MyPermission8" || context.Permission.Name == "MyPermission9") |
|
|
|
{ |
|
|
|
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 == "MyPermission8" || name == "MyPermission9" |
|
|
|
? PermissionGrantResult.Granted |
|
|
|
: PermissionGrantResult.Undefined); |
|
|
|
} |
|
|
|
|
|
|
|
return Task.FromResult(result); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -4,13 +4,13 @@ using Volo.Abp.Authorization.Permissions; |
|
|
|
|
|
|
|
namespace Volo.Abp.Authorization.TestServices; |
|
|
|
|
|
|
|
public class TestProhibitedPermissionValueProvider : PermissionValueProvider |
|
|
|
public class TestProhibitedPermissionValueProvider2 : PermissionValueProvider |
|
|
|
{ |
|
|
|
public TestProhibitedPermissionValueProvider(IPermissionStore permissionStore) : base(permissionStore) |
|
|
|
public TestProhibitedPermissionValueProvider2(IPermissionStore permissionStore) : base(permissionStore) |
|
|
|
{ |
|
|
|
} |
|
|
|
|
|
|
|
public override string Name => "TestProhibitedPermissionValueProvider"; |
|
|
|
public override string Name => "TestProhibitedPermissionValueProvider2"; |
|
|
|
|
|
|
|
public override Task<PermissionGrantResult> CheckAsync(PermissionValueCheckContext context) |
|
|
|
{ |