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