mirror of https://github.com/abpframework/abp.git
committed by
GitHub
18 changed files with 238 additions and 7 deletions
@ -0,0 +1,31 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
using JetBrains.Annotations; |
|||
using Volo.Abp.Authorization.Permissions; |
|||
|
|||
namespace Volo.Abp.PermissionManagement; |
|||
|
|||
public static class ClientPermissionManagerExtensions |
|||
{ |
|||
public static Task<PermissionWithGrantedProviders> GetForClientAsync([NotNull] this IPermissionManager permissionManager, string clientId, string permissionName) |
|||
{ |
|||
Check.NotNull(permissionManager, nameof(permissionManager)); |
|||
|
|||
return permissionManager.GetAsync(permissionName, ClientPermissionValueProvider.ProviderName, clientId); |
|||
} |
|||
|
|||
public static Task<List<PermissionWithGrantedProviders>> GetAllForClientAsync([NotNull] this IPermissionManager permissionManager, string clientId) |
|||
{ |
|||
Check.NotNull(permissionManager, nameof(permissionManager)); |
|||
|
|||
return permissionManager.GetAllAsync(ClientPermissionValueProvider.ProviderName, clientId); |
|||
} |
|||
|
|||
public static Task SetForClientAsync([NotNull] this IPermissionManager permissionManager, string clientId, [NotNull] string permissionName, bool isGranted) |
|||
{ |
|||
Check.NotNull(permissionManager, nameof(permissionManager)); |
|||
|
|||
return permissionManager.SetAsync(permissionName, ClientPermissionValueProvider.ProviderName, clientId, isGranted); |
|||
} |
|||
} |
|||
@ -0,0 +1,44 @@ |
|||
using System.Threading.Tasks; |
|||
using Shouldly; |
|||
using Volo.Abp.Authorization.Permissions; |
|||
using Volo.Abp.IdentityServer; |
|||
using Volo.Abp.PermissionManagement; |
|||
using Xunit; |
|||
|
|||
namespace Volo.Abp.OpenIddict; |
|||
|
|||
public class PermissionManager_Tests : AbpIdentityServerDomainTestBase |
|||
{ |
|||
private readonly IPermissionManager _permissionManager; |
|||
private readonly IPermissionStore _permissionStore; |
|||
private readonly AbpIdentityServerTestData _testData; |
|||
|
|||
public PermissionManager_Tests() |
|||
{ |
|||
_permissionManager = GetRequiredService<IPermissionManager>(); |
|||
_permissionStore = GetRequiredService<IPermissionStore>(); |
|||
_testData = GetRequiredService<AbpIdentityServerTestData>(); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task Should_Grant_Permission_To_Client() |
|||
{ |
|||
(await _permissionManager.GetForClientAsync(_testData.Client1Name, TestPermissionNames.MyPermission1)).IsGranted.ShouldBeFalse(); |
|||
(await _permissionStore.IsGrantedAsync(TestPermissionNames.MyPermission2, ClientPermissionValueProvider.ProviderName, _testData.Client1Name)).ShouldBeFalse(); |
|||
|
|||
await _permissionManager.SetForClientAsync(_testData.Client1Name, TestPermissionNames.MyPermission2, true); |
|||
|
|||
(await _permissionManager.GetForClientAsync(_testData.Client1Name, TestPermissionNames.MyPermission2)).IsGranted.ShouldBeTrue(); |
|||
(await _permissionStore.IsGrantedAsync(TestPermissionNames.MyPermission2, ClientPermissionValueProvider.ProviderName, _testData.Client1Name)).ShouldBeTrue(); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task Should_Revoke_Permission_From_Client() |
|||
{ |
|||
await _permissionManager.SetForClientAsync(_testData.Client1Name, TestPermissionNames.MyPermission1, true); |
|||
(await _permissionManager.GetForClientAsync(_testData.Client1Name, TestPermissionNames.MyPermission1)).IsGranted.ShouldBeTrue(); |
|||
|
|||
await _permissionManager.SetForClientAsync(_testData.Client1Name, TestPermissionNames.MyPermission1, false); |
|||
(await _permissionManager.GetForClientAsync(_testData.Client1Name, TestPermissionNames.MyPermission1)).IsGranted.ShouldBeFalse(); |
|||
} |
|||
} |
|||
@ -0,0 +1,13 @@ |
|||
namespace Volo.Abp.IdentityServer; |
|||
|
|||
public static class TestPermissionNames |
|||
{ |
|||
public static class Groups |
|||
{ |
|||
public const string TestGroup = "TestGroup"; |
|||
} |
|||
|
|||
public const string MyPermission1 = "MyPermission1"; |
|||
|
|||
public const string MyPermission2 = "MyPermission2"; |
|||
} |
|||
@ -0,0 +1,13 @@ |
|||
using Volo.Abp.Authorization.Permissions; |
|||
|
|||
namespace Volo.Abp.IdentityServer; |
|||
|
|||
public class TestTestPermissionDefinitionProvider : PermissionDefinitionProvider |
|||
{ |
|||
public override void Define(IPermissionDefinitionContext context) |
|||
{ |
|||
var testGroup = context.AddGroup(TestPermissionNames.Groups.TestGroup); |
|||
testGroup.AddPermission(TestPermissionNames.MyPermission1); |
|||
testGroup.AddPermission(TestPermissionNames.MyPermission2); |
|||
} |
|||
} |
|||
@ -0,0 +1,31 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
using JetBrains.Annotations; |
|||
using Volo.Abp.Authorization.Permissions; |
|||
|
|||
namespace Volo.Abp.PermissionManagement; |
|||
|
|||
public static class ClientPermissionManagerExtensions |
|||
{ |
|||
public static Task<PermissionWithGrantedProviders> GetForClientAsync([NotNull] this IPermissionManager permissionManager, string clientId, string permissionName) |
|||
{ |
|||
Check.NotNull(permissionManager, nameof(permissionManager)); |
|||
|
|||
return permissionManager.GetAsync(permissionName, ClientPermissionValueProvider.ProviderName, clientId); |
|||
} |
|||
|
|||
public static Task<List<PermissionWithGrantedProviders>> GetAllForClientAsync([NotNull] this IPermissionManager permissionManager, string clientId) |
|||
{ |
|||
Check.NotNull(permissionManager, nameof(permissionManager)); |
|||
|
|||
return permissionManager.GetAllAsync(ClientPermissionValueProvider.ProviderName, clientId); |
|||
} |
|||
|
|||
public static Task SetForClientAsync([NotNull] this IPermissionManager permissionManager, string clientId, [NotNull] string permissionName, bool isGranted) |
|||
{ |
|||
Check.NotNull(permissionManager, nameof(permissionManager)); |
|||
|
|||
return permissionManager.SetAsync(permissionName, ClientPermissionValueProvider.ProviderName, clientId, isGranted); |
|||
} |
|||
} |
|||
@ -0,0 +1,43 @@ |
|||
using System.Threading.Tasks; |
|||
using Shouldly; |
|||
using Volo.Abp.Authorization.Permissions; |
|||
using Volo.Abp.PermissionManagement; |
|||
using Xunit; |
|||
|
|||
namespace Volo.Abp.OpenIddict; |
|||
|
|||
public class PermissionManager_Tests : OpenIddictDomainTestBase |
|||
{ |
|||
private readonly IPermissionManager _permissionManager; |
|||
private readonly IPermissionStore _permissionStore; |
|||
private readonly AbpOpenIddictTestData _testData; |
|||
|
|||
public PermissionManager_Tests() |
|||
{ |
|||
_permissionManager = GetRequiredService<IPermissionManager>(); |
|||
_permissionStore = GetRequiredService<IPermissionStore>(); |
|||
_testData = GetRequiredService<AbpOpenIddictTestData>(); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task Should_Grant_Permission_To_Client() |
|||
{ |
|||
(await _permissionManager.GetForClientAsync(_testData.App1ClientId, TestPermissionNames.MyPermission1)).IsGranted.ShouldBeFalse(); |
|||
(await _permissionStore.IsGrantedAsync(TestPermissionNames.MyPermission2, ClientPermissionValueProvider.ProviderName, _testData.App1ClientId)).ShouldBeFalse(); |
|||
|
|||
await _permissionManager.SetForClientAsync(_testData.App1ClientId, TestPermissionNames.MyPermission2, true); |
|||
|
|||
(await _permissionManager.GetForClientAsync(_testData.App1ClientId, TestPermissionNames.MyPermission2)).IsGranted.ShouldBeTrue(); |
|||
(await _permissionStore.IsGrantedAsync(TestPermissionNames.MyPermission2, ClientPermissionValueProvider.ProviderName, _testData.App1ClientId)).ShouldBeTrue(); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task Should_Revoke_Permission_From_Client() |
|||
{ |
|||
await _permissionManager.SetForClientAsync(_testData.App1ClientId, TestPermissionNames.MyPermission1, true); |
|||
(await _permissionManager.GetForClientAsync(_testData.App1ClientId, TestPermissionNames.MyPermission1)).IsGranted.ShouldBeTrue(); |
|||
|
|||
await _permissionManager.SetForClientAsync(_testData.App1ClientId, TestPermissionNames.MyPermission1, false); |
|||
(await _permissionManager.GetForClientAsync(_testData.App1ClientId, TestPermissionNames.MyPermission1)).IsGranted.ShouldBeFalse(); |
|||
} |
|||
} |
|||
@ -0,0 +1,13 @@ |
|||
using Volo.Abp.Authorization.Permissions; |
|||
|
|||
namespace Volo.Abp.OpenIddict; |
|||
|
|||
public class TestPermissionDefinitionProvider : PermissionDefinitionProvider |
|||
{ |
|||
public override void Define(IPermissionDefinitionContext context) |
|||
{ |
|||
var testGroup = context.AddGroup(TestPermissionNames.Groups.TestGroup); |
|||
testGroup.AddPermission(TestPermissionNames.MyPermission1); |
|||
testGroup.AddPermission(TestPermissionNames.MyPermission2); |
|||
} |
|||
} |
|||
@ -0,0 +1,13 @@ |
|||
namespace Volo.Abp.OpenIddict; |
|||
|
|||
public static class TestPermissionNames |
|||
{ |
|||
public static class Groups |
|||
{ |
|||
public const string TestGroup = "TestGroup"; |
|||
} |
|||
|
|||
public const string MyPermission1 = "MyPermission1"; |
|||
|
|||
public const string MyPermission2 = "MyPermission2"; |
|||
} |
|||
Loading…
Reference in new issue