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();
        }
Ejemplo n.º 2
0
    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);
        }
Ejemplo n.º 4
0
    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);
        }