protected virtual async Task <PermissionWithGrantedProviders> GetInternalAsync(PermissionDefinition permission, string providerName, string providerKey) { var result = new PermissionWithGrantedProviders(permission.Name, false); if (!permission.IsEnabled) { return(result); } if (!permission.MultiTenancySide.HasFlag(CurrentTenant.GetMultiTenancySide())) { return(result); } if (permission.Providers.Any() && !permission.Providers.Contains(providerName)) { return(result); } foreach (var provider in ManagementProviders) { var providerResult = await provider.CheckAsync(permission.Name, providerName, providerKey); if (providerResult.IsGranted) { result.IsGranted = true; result.Providers.Add(new PermissionValueProviderInfo(provider.Name, providerResult.ProviderKey)); } } return(result); }
protected virtual async Task <PermissionWithGrantedProviders> GetInternalAsync(PermissionDefinition permissionDefinition, string providerName, string providerKey) { var result = new PermissionWithGrantedProviders(permissionDefinition.Name, false); foreach (var provider in ManagementProviders) { var providerResult = await provider.CheckAsync(permissionDefinition.Name, providerName, providerKey); if (providerResult.IsGranted) { result.IsGranted = true; result.Providers.Add(new PermissionValueProviderInfo(provider.Name, providerResult.ProviderKey)); } } return(result); }