public async Task Should_Grant_Permission_To_Role() { (await _permissionManager.GetForRoleAsync("supporter", TestPermissionNames.MyPermission2)).IsGranted.ShouldBeFalse(); (await _permissionStore.IsGrantedAsync(TestPermissionNames.MyPermission2, RolePermissionValueProvider.ProviderName, "supporter")).ShouldBeFalse(); await _permissionManager.SetForRoleAsync("supporter", TestPermissionNames.MyPermission2, true); (await _permissionManager.GetForRoleAsync("supporter", TestPermissionNames.MyPermission2)).IsGranted.ShouldBeTrue(); (await _permissionStore.IsGrantedAsync(TestPermissionNames.MyPermission2, RolePermissionValueProvider.ProviderName, "supporter")).ShouldBeTrue(); }
public async Task IsGrantedAsync() { (await _permissionStore.IsGrantedAsync("MyPermission1", UserPermissionValueProvider.ProviderName, PermissionTestDataBuilder.User1Id.ToString())).ShouldBeTrue(); (await _permissionStore.IsGrantedAsync("MyPermission1NotExist", UserPermissionValueProvider.ProviderName, PermissionTestDataBuilder.User1Id.ToString())).ShouldBeFalse(); }
public async Task <PermissionGrantResult> CheckAsync(ClaimsPrincipal principal, PermissionDefinition permission) { var userId = principal?.FindFirst(ClaimTypes.NameIdentifier)?.Value; if (userId is null) { return(PermissionGrantResult.Undefined); } return(await _permissionStore.IsGrantedAsync(permission.Name, Name, userId) ? PermissionGrantResult.Granted : PermissionGrantResult.Undefined); }
public async Task PermissionStore_IsGrantedAsync_Should_Cache_PermissionGrant() { (await _cache.GetAsync(PermissionGrantCacheItem.CalculateCacheKey("MyPermission1", UserPermissionValueProvider.ProviderName, PermissionTestDataBuilder.User1Id.ToString()))).ShouldBeNull(); await _permissionStore.IsGrantedAsync("MyPermission1", UserPermissionValueProvider.ProviderName, PermissionTestDataBuilder.User1Id.ToString()); (await _cache.GetAsync(PermissionGrantCacheItem.CalculateCacheKey("MyPermission1", UserPermissionValueProvider.ProviderName, PermissionTestDataBuilder.User1Id.ToString()))).ShouldNotBeNull(); }
public async Task <PermissionGrantResult> CheckAsync(ClaimsPrincipal principal, PermissionDefinition permission) { var roles = principal?.FindAll(ClaimTypes.Role).Select(c => c.Value).ToArray(); if (roles == null || !roles.Any()) { return(PermissionGrantResult.Undefined); } foreach (var role in roles) { if (await _permissionStore.IsGrantedAsync(permission.Name, Name !, role)) { return(PermissionGrantResult.Granted); } } return(PermissionGrantResult.Undefined); }