fixed a bug with null values of settings

This commit is contained in:
Vashchuk Nikita 2022-10-24 15:11:01 +05:00
parent 0da6992414
commit 6c197d9372
2 changed files with 28 additions and 23 deletions

View File

@ -46,13 +46,11 @@ public class StudioSmsNotificationSettingsHelper : TfaSettingsHelperBase<StudioS
{
private readonly CoreBaseSettings _coreBaseSettings;
private readonly SetupInfo _setupInfo;
private readonly SettingsManager _settingsManager;
private readonly SmsProviderManager _smsProviderManager;
private readonly TenantManager _tenantManager;
public StudioSmsNotificationSettingsHelper(
IHttpContextAccessor httpContextAccessor,
TenantExtra tenantExtra,
CoreBaseSettings coreBaseSettings,
SetupInfo setupInfo,
SettingsManager settingsManager,
@ -63,7 +61,6 @@ public class StudioSmsNotificationSettingsHelper : TfaSettingsHelperBase<StudioS
{
_coreBaseSettings = coreBaseSettings;
_setupInfo = setupInfo;
_settingsManager = settingsManager;
_smsProviderManager = smsProviderManager;
_tenantManager = tenantManager;
}

View File

@ -70,28 +70,36 @@ public abstract class TfaSettingsHelperBase<T> where T : TfaSettingsBase<T>, new
{
return false;
}
foreach (var mandatory in settings.MandatoryGroups)
{
if (_userManager.IsUserInGroup(userGuid, mandatory))
{
return true;
}
if (settings.MandatoryGroups != null)
{
foreach (var mandatory in settings.MandatoryGroups)
{
if (_userManager.IsUserInGroup(userGuid, mandatory))
{
return true;
}
}
}
foreach (var mandatory in settings.MandatoryUsers)
{
if (mandatory == userGuid)
{
return true;
}
if (settings.MandatoryUsers != null)
{
foreach (var mandatory in settings.MandatoryUsers)
{
if (mandatory == userGuid)
{
return true;
}
}
}
var requestIP = MessageSettings.GetIP(_httpContextAccessor.HttpContext.Request);
if (!string.IsNullOrWhiteSpace(requestIP) && settings.TrustedIps.Any(trustedIp => IPSecurity.IPSecurity.MatchIPs(requestIP, trustedIp)))
{
return false;
if (settings.TrustedIps != null && settings.TrustedIps.Any())
{
var requestIP = MessageSettings.GetIP(_httpContextAccessor.HttpContext.Request);
if (!string.IsNullOrWhiteSpace(requestIP) && settings.TrustedIps.Any(trustedIp => IPSecurity.IPSecurity.MatchIPs(requestIP, trustedIp)))
{
return false;
}
}
return true;