mirror of https://github.com/abpframework/abp.git
15 changed files with 437 additions and 27 deletions
@ -0,0 +1,49 @@ |
|||
using System.Collections.Generic; |
|||
using System.Security.Claims; |
|||
using Volo.Abp.DependencyInjection; |
|||
using Volo.Abp.Security.Claims; |
|||
|
|||
namespace Volo.Abp.Identity; |
|||
|
|||
[Dependency(ReplaceServices = true)] |
|||
public class FakeCurrentPrincipalAccessor : ThreadCurrentPrincipalAccessor |
|||
{ |
|||
private readonly IdentityTestData _testData; |
|||
|
|||
public FakeCurrentPrincipalAccessor(IdentityTestData testData) |
|||
{ |
|||
_testData = testData; |
|||
} |
|||
|
|||
protected override ClaimsPrincipal GetClaimsPrincipal() |
|||
{ |
|||
return GetPrincipal(); |
|||
} |
|||
|
|||
private ClaimsPrincipal _principal; |
|||
|
|||
private ClaimsPrincipal GetPrincipal() |
|||
{ |
|||
if (_principal == null) |
|||
{ |
|||
lock (this) |
|||
{ |
|||
if (_principal == null) |
|||
{ |
|||
_principal = new ClaimsPrincipal( |
|||
new ClaimsIdentity( |
|||
new List<Claim> |
|||
{ |
|||
new Claim(AbpClaimTypes.UserId, _testData.UserAdminId.ToString()), |
|||
new Claim(AbpClaimTypes.UserName, "administrator"), |
|||
new Claim(AbpClaimTypes.Email, "administrator@abp.io") |
|||
} |
|||
) |
|||
); |
|||
} |
|||
} |
|||
} |
|||
|
|||
return _principal; |
|||
} |
|||
} |
|||
@ -0,0 +1,53 @@ |
|||
using System.Collections.Generic; |
|||
using System.Security.Claims; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.Authorization.Permissions; |
|||
|
|||
namespace Volo.Abp.PermissionManagement; |
|||
|
|||
public class FakePermissionChecker : IPermissionChecker |
|||
{ |
|||
private HashSet<string>? _grantedPermissions; |
|||
|
|||
public void GrantAllPermissions() |
|||
{ |
|||
_grantedPermissions = null; |
|||
} |
|||
|
|||
public void SetGrantedPermissions(params string[] permissions) |
|||
{ |
|||
_grantedPermissions = new HashSet<string>(permissions); |
|||
} |
|||
|
|||
private bool IsGranted(string name) |
|||
{ |
|||
return _grantedPermissions == null || _grantedPermissions.Contains(name); |
|||
} |
|||
|
|||
public Task<bool> IsGrantedAsync(string name) |
|||
{ |
|||
return Task.FromResult(IsGranted(name)); |
|||
} |
|||
|
|||
public Task<bool> IsGrantedAsync(ClaimsPrincipal? claimsPrincipal, string name) |
|||
{ |
|||
return Task.FromResult(IsGranted(name)); |
|||
} |
|||
|
|||
public Task<MultiplePermissionGrantResult> IsGrantedAsync(string[] names) |
|||
{ |
|||
return IsGrantedAsync(null, names); |
|||
} |
|||
|
|||
public Task<MultiplePermissionGrantResult> IsGrantedAsync(ClaimsPrincipal? claimsPrincipal, string[] names) |
|||
{ |
|||
var result = new MultiplePermissionGrantResult(); |
|||
foreach (var name in names) |
|||
{ |
|||
result.Result[name] = IsGranted(name) |
|||
? PermissionGrantResult.Granted |
|||
: PermissionGrantResult.Undefined; |
|||
} |
|||
return Task.FromResult(result); |
|||
} |
|||
} |
|||
Loading…
Reference in new issue