public async Task <bool> TwoFactorIsEnabledAsync(ITwoFactorProvidersUser user) { var providers = user.GetTwoFactorProviders(); if (providers == null) { return(false); } foreach (var p in providers) { if (p.Value?.Enabled ?? false) { if (!TwoFactorProvider.RequiresPremium(p.Key)) { return(true); } if (await CanAccessPremium(user)) { return(true); } } } return(false); }
public async Task <bool> TwoFactorProviderIsEnabledAsync(TwoFactorProviderType provider, ITwoFactorProvidersUser user) { var providers = user.GetTwoFactorProviders(); if (providers == null || !providers.ContainsKey(provider) || !providers[provider].Enabled) { return(false); } if (!TwoFactorProvider.RequiresPremium(provider)) { return(true); } return(await CanAccessPremium(user)); }