refactoring
This commit is contained in:
parent
a563bbe3cf
commit
397af4e55d
@ -162,7 +162,7 @@ public class AuthenticationController : ControllerBase
|
|||||||
sms = true;
|
sms = true;
|
||||||
_smsManager.ValidateSmsCode(user, inDto.Code, true);
|
_smsManager.ValidateSmsCode(user, inDto.Code, true);
|
||||||
}
|
}
|
||||||
else if (TfaAppAuthSettingsHelper.IsVisibleSettings && _tfaAppAuthSettingsHelper.TfaEnabledForUser(user.Id))
|
else if (_tfaAppAuthSettingsHelper.IsVisibleSettings && _tfaAppAuthSettingsHelper.TfaEnabledForUser(user.Id))
|
||||||
{
|
{
|
||||||
if (_tfaManager.ValidateAuthCode(user, inDto.Code, true, true))
|
if (_tfaManager.ValidateAuthCode(user, inDto.Code, true, true))
|
||||||
{
|
{
|
||||||
@ -238,7 +238,7 @@ public class AuthenticationController : ControllerBase
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TfaAppAuthSettingsHelper.IsVisibleSettings && _tfaAppAuthSettingsHelper.TfaEnabledForUser(user.Id))
|
if (_tfaAppAuthSettingsHelper.IsVisibleSettings && _tfaAppAuthSettingsHelper.TfaEnabledForUser(user.Id))
|
||||||
{
|
{
|
||||||
if (!TfaAppUserSettings.EnableForUser(_settingsManager, user.Id))
|
if (!TfaAppUserSettings.EnableForUser(_settingsManager, user.Id))
|
||||||
{
|
{
|
||||||
@ -373,8 +373,8 @@ public class AuthenticationController : ControllerBase
|
|||||||
|
|
||||||
var requestIp = MessageSettings.GetIP(Request);
|
var requestIp = MessageSettings.GetIP(Request);
|
||||||
|
|
||||||
user = _bruteForceLoginManager.Attempt(inDto.UserName, inDto.PasswordHash, requestIp, out _);
|
user = _bruteForceLoginManager.Attempt(inDto.UserName, inDto.PasswordHash, requestIp, out _);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!(_coreBaseSettings.Standalone || _tenantManager.GetTenantQuota(_tenantManager.GetCurrentTenant().Id).Oauth))
|
if (!(_coreBaseSettings.Standalone || _tenantManager.GetTenantQuota(_tenantManager.GetCurrentTenant().Id).Oauth))
|
||||||
|
@ -95,9 +95,9 @@ public class TfaappController : BaseSettingsController
|
|||||||
{
|
{
|
||||||
var result = new List<TfaSettingsDto>();
|
var result = new List<TfaSettingsDto>();
|
||||||
|
|
||||||
var SmsVisible = StudioSmsNotificationSettingsHelper.IsVisibleSettings();
|
var SmsVisible = _studioSmsNotificationSettingsHelper.IsVisibleSettings;
|
||||||
var SmsEnable = SmsVisible && _smsProviderManager.Enabled();
|
var SmsEnable = SmsVisible && _smsProviderManager.Enabled();
|
||||||
var TfaVisible = TfaAppAuthSettingsHelper.IsVisibleSettings;
|
var TfaVisible = _tfaAppAuthSettingsHelper.IsVisibleSettings;
|
||||||
|
|
||||||
var tfaAppSettings = _settingsManager.Load<TfaAppAuthSettings>();
|
var tfaAppSettings = _settingsManager.Load<TfaAppAuthSettings>();
|
||||||
var tfaSmsSettings = _settingsManager.Load<StudioSmsNotificationSettings>();
|
var tfaSmsSettings = _settingsManager.Load<StudioSmsNotificationSettings>();
|
||||||
@ -148,7 +148,7 @@ public class TfaappController : BaseSettingsController
|
|||||||
{
|
{
|
||||||
var user = _userManager.GetUsers(_authContext.CurrentAccount.ID);
|
var user = _userManager.GetUsers(_authContext.CurrentAccount.ID);
|
||||||
|
|
||||||
if (StudioSmsNotificationSettingsHelper.IsVisibleSettings() && _studioSmsNotificationSettingsHelper.TfaEnabledForUser(user.Id))// && smsConfirm.ToLower() != "true")
|
if (_studioSmsNotificationSettingsHelper.IsVisibleSettings && _studioSmsNotificationSettingsHelper.TfaEnabledForUser(user.Id))// && smsConfirm.ToLower() != "true")
|
||||||
{
|
{
|
||||||
var confirmType = string.IsNullOrEmpty(user.MobilePhone) ||
|
var confirmType = string.IsNullOrEmpty(user.MobilePhone) ||
|
||||||
user.MobilePhoneActivationStatus == MobilePhoneActivationStatus.NotActivated
|
user.MobilePhoneActivationStatus == MobilePhoneActivationStatus.NotActivated
|
||||||
@ -158,7 +158,7 @@ public class TfaappController : BaseSettingsController
|
|||||||
return _commonLinkUtility.GetConfirmationEmailUrl(user.Email, confirmType);
|
return _commonLinkUtility.GetConfirmationEmailUrl(user.Email, confirmType);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TfaAppAuthSettingsHelper.IsVisibleSettings && _tfaAppAuthSettingsHelper.TfaEnabledForUser(user.Id))
|
if (_tfaAppAuthSettingsHelper.IsVisibleSettings && _tfaAppAuthSettingsHelper.TfaEnabledForUser(user.Id))
|
||||||
{
|
{
|
||||||
var confirmType = TfaAppUserSettings.EnableForUser(_settingsManager, _authContext.CurrentAccount.ID)
|
var confirmType = TfaAppUserSettings.EnableForUser(_settingsManager, _authContext.CurrentAccount.ID)
|
||||||
? ConfirmType.TfaAuth
|
? ConfirmType.TfaAuth
|
||||||
@ -208,7 +208,7 @@ public class TfaappController : BaseSettingsController
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case "app":
|
case "app":
|
||||||
if (!TfaAppAuthSettingsHelper.IsVisibleSettings)
|
if (!_tfaAppAuthSettingsHelper.IsVisibleSettings)
|
||||||
{
|
{
|
||||||
throw new Exception(Resource.TfaAppNotAvailable);
|
throw new Exception(Resource.TfaAppNotAvailable);
|
||||||
}
|
}
|
||||||
@ -280,7 +280,7 @@ public class TfaappController : BaseSettingsController
|
|||||||
ApiContext.AuthByClaim();
|
ApiContext.AuthByClaim();
|
||||||
var currentUser = _userManager.GetUsers(_authContext.CurrentAccount.ID);
|
var currentUser = _userManager.GetUsers(_authContext.CurrentAccount.ID);
|
||||||
|
|
||||||
if (!TfaAppAuthSettingsHelper.IsVisibleSettings ||
|
if (!_tfaAppAuthSettingsHelper.IsVisibleSettings ||
|
||||||
!_settingsManager.Load<TfaAppAuthSettings>().EnableSetting ||
|
!_settingsManager.Load<TfaAppAuthSettings>().EnableSetting ||
|
||||||
TfaAppUserSettings.EnableForUser(_settingsManager, currentUser.Id))
|
TfaAppUserSettings.EnableForUser(_settingsManager, currentUser.Id))
|
||||||
{
|
{
|
||||||
@ -300,7 +300,7 @@ public class TfaappController : BaseSettingsController
|
|||||||
{
|
{
|
||||||
var currentUser = _userManager.GetUsers(_authContext.CurrentAccount.ID);
|
var currentUser = _userManager.GetUsers(_authContext.CurrentAccount.ID);
|
||||||
|
|
||||||
if (!TfaAppAuthSettingsHelper.IsVisibleSettings || !TfaAppUserSettings.EnableForUser(_settingsManager, currentUser.Id))
|
if (!_tfaAppAuthSettingsHelper.IsVisibleSettings || !TfaAppUserSettings.EnableForUser(_settingsManager, currentUser.Id))
|
||||||
{
|
{
|
||||||
throw new Exception(Resource.TfaAppNotAvailable);
|
throw new Exception(Resource.TfaAppNotAvailable);
|
||||||
}
|
}
|
||||||
@ -318,7 +318,7 @@ public class TfaappController : BaseSettingsController
|
|||||||
{
|
{
|
||||||
var currentUser = _userManager.GetUsers(_authContext.CurrentAccount.ID);
|
var currentUser = _userManager.GetUsers(_authContext.CurrentAccount.ID);
|
||||||
|
|
||||||
if (!TfaAppAuthSettingsHelper.IsVisibleSettings || !TfaAppUserSettings.EnableForUser(_settingsManager, currentUser.Id))
|
if (!_tfaAppAuthSettingsHelper.IsVisibleSettings || !TfaAppUserSettings.EnableForUser(_settingsManager, currentUser.Id))
|
||||||
{
|
{
|
||||||
throw new Exception(Resource.TfaAppNotAvailable);
|
throw new Exception(Resource.TfaAppNotAvailable);
|
||||||
}
|
}
|
||||||
@ -346,7 +346,7 @@ public class TfaappController : BaseSettingsController
|
|||||||
throw new SecurityAccessDeniedException(Resource.ErrorAccessDenied);
|
throw new SecurityAccessDeniedException(Resource.ErrorAccessDenied);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TfaAppAuthSettingsHelper.IsVisibleSettings || !TfaAppUserSettings.EnableForUser(_settingsManager, user.Id))
|
if (!_tfaAppAuthSettingsHelper.IsVisibleSettings || !TfaAppUserSettings.EnableForUser(_settingsManager, user.Id))
|
||||||
{
|
{
|
||||||
throw new Exception(Resource.TfaAppNotAvailable);
|
throw new Exception(Resource.TfaAppNotAvailable);
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ public class StudioSmsNotificationSettings : TfaSettingsBase<StudioSmsNotificati
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Scope]
|
[Scope]
|
||||||
public class StudioSmsNotificationSettingsHelper : TfaSettingsHelperBase
|
public class StudioSmsNotificationSettingsHelper : TfaSettingsHelperBase<StudioSmsNotificationSettings>
|
||||||
{
|
{
|
||||||
private readonly TenantExtra _tenantExtra;
|
private readonly TenantExtra _tenantExtra;
|
||||||
private readonly CoreBaseSettings _coreBaseSettings;
|
private readonly CoreBaseSettings _coreBaseSettings;
|
||||||
@ -57,8 +57,8 @@ public class StudioSmsNotificationSettingsHelper : TfaSettingsHelperBase
|
|||||||
SetupInfo setupInfo,
|
SetupInfo setupInfo,
|
||||||
SettingsManager settingsManager,
|
SettingsManager settingsManager,
|
||||||
SmsProviderManager smsProviderManager,
|
SmsProviderManager smsProviderManager,
|
||||||
UserManager userManager)
|
UserManager userManager)
|
||||||
: base(httpContextAccessor, userManager)
|
: base(settingsManager, httpContextAccessor, userManager)
|
||||||
{
|
{
|
||||||
_tenantExtra = tenantExtra;
|
_tenantExtra = tenantExtra;
|
||||||
_coreBaseSettings = coreBaseSettings;
|
_coreBaseSettings = coreBaseSettings;
|
||||||
@ -67,14 +67,9 @@ public class StudioSmsNotificationSettingsHelper : TfaSettingsHelperBase
|
|||||||
_smsProviderManager = smsProviderManager;
|
_smsProviderManager = smsProviderManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsVisibleSettings()
|
|
||||||
{
|
|
||||||
return SetupInfo.IsVisibleSettings<StudioSmsNotificationSettings>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool IsVisibleAndAvailableSettings()
|
public bool IsVisibleAndAvailableSettings()
|
||||||
{
|
{
|
||||||
return IsVisibleSettings() && IsAvailableSettings();
|
return IsVisibleSettings && IsAvailableSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsAvailableSettings()
|
public bool IsAvailableSettings()
|
||||||
@ -87,13 +82,6 @@ public class StudioSmsNotificationSettingsHelper : TfaSettingsHelperBase
|
|||||||
&& !quota.Open);
|
&& !quota.Open);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool TfaEnabledForUser(Guid userGuid)
|
|
||||||
{
|
|
||||||
var settings = _settingsManager.Load<StudioSmsNotificationSettings>();
|
|
||||||
|
|
||||||
return TfaEnabledForUser(settings, userGuid);
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool Enable
|
public bool Enable
|
||||||
{
|
{
|
||||||
get { return _settingsManager.Load<StudioSmsNotificationSettings>().EnableSetting && _smsProviderManager.Enabled(); }
|
get { return _settingsManager.Load<StudioSmsNotificationSettings>().EnableSetting && _smsProviderManager.Enabled(); }
|
||||||
|
@ -46,22 +46,26 @@ public abstract class TfaSettingsBase<T> : ISettings<T> where T : ISettings<T>
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public abstract class TfaSettingsHelperBase
|
public abstract class TfaSettingsHelperBase<T> where T : TfaSettingsBase<T>
|
||||||
{
|
{
|
||||||
|
private readonly UserManager _userManager;
|
||||||
private readonly UserManager _userManager;
|
private readonly SettingsManager _settingsManager;
|
||||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||||
|
|
||||||
public TfaSettingsHelperBase(
|
public TfaSettingsHelperBase(
|
||||||
|
SettingsManager settingsManager,
|
||||||
IHttpContextAccessor httpContextAccessor,
|
IHttpContextAccessor httpContextAccessor,
|
||||||
UserManager userManager)
|
UserManager userManager)
|
||||||
{
|
{
|
||||||
|
_settingsManager = settingsManager;
|
||||||
_httpContextAccessor = httpContextAccessor;
|
_httpContextAccessor = httpContextAccessor;
|
||||||
_userManager = userManager;
|
_userManager = userManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool TfaEnabledForUser<T>(TfaSettingsBase<T> settings, Guid userGuid) where T : ISettings<T>
|
public bool TfaEnabledForUser(Guid userGuid)
|
||||||
{
|
{
|
||||||
|
var settings = _settingsManager.Load<T>();
|
||||||
|
|
||||||
if (!settings.EnableSetting)
|
if (!settings.EnableSetting)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -91,5 +95,10 @@ public abstract class TfaSettingsHelperBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsVisibleSettings
|
||||||
|
{
|
||||||
|
get { return SetupInfo.IsVisibleSettings<T>(); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,26 +42,19 @@ public class TfaAppAuthSettings : TfaSettingsBase<TfaAppAuthSettings>
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Scope]
|
[Scope]
|
||||||
public class TfaAppAuthSettingsHelper : TfaSettingsHelperBase
|
public class TfaAppAuthSettingsHelper : TfaSettingsHelperBase<TfaAppAuthSettings>
|
||||||
{
|
{
|
||||||
private readonly SettingsManager _settingsManager;
|
private readonly SettingsManager _settingsManager;
|
||||||
|
|
||||||
public TfaAppAuthSettingsHelper(
|
public TfaAppAuthSettingsHelper(
|
||||||
IHttpContextAccessor httpContextAccessor,
|
IHttpContextAccessor httpContextAccessor,
|
||||||
UserManager userManager,
|
UserManager userManager,
|
||||||
SettingsManager settingsManager)
|
SettingsManager settingsManager)
|
||||||
: base(httpContextAccessor, userManager)
|
: base(settingsManager, httpContextAccessor, userManager)
|
||||||
{
|
{
|
||||||
_settingsManager = settingsManager;
|
_settingsManager = settingsManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool TfaEnabledForUser(Guid userGuid)
|
|
||||||
{
|
|
||||||
var settings = _settingsManager.Load<TfaAppAuthSettings>();
|
|
||||||
|
|
||||||
return TfaEnabledForUser(settings, userGuid);
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool Enable
|
public bool Enable
|
||||||
{
|
{
|
||||||
get { return _settingsManager.Load<TfaAppAuthSettings>().EnableSetting; }
|
get { return _settingsManager.Load<TfaAppAuthSettings>().EnableSetting; }
|
||||||
@ -80,9 +73,4 @@ public class TfaAppAuthSettingsHelper : TfaSettingsHelperBase
|
|||||||
_settingsManager.Save(settings);
|
_settingsManager.Save(settings);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsVisibleSettings
|
|
||||||
{
|
|
||||||
get { return SetupInfo.IsVisibleSettings<TfaAppAuthSettings>(); }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -67,6 +67,7 @@ public class TfaManager
|
|||||||
private readonly Signature _signature;
|
private readonly Signature _signature;
|
||||||
private readonly InstanceCrypto _instanceCrypto;
|
private readonly InstanceCrypto _instanceCrypto;
|
||||||
private readonly MachinePseudoKeys _machinePseudoKeys;
|
private readonly MachinePseudoKeys _machinePseudoKeys;
|
||||||
|
private readonly TfaAppAuthSettingsHelper _tfaAppAuthSettingsHelper;
|
||||||
|
|
||||||
public TfaManager(
|
public TfaManager(
|
||||||
SettingsManager settingsManager,
|
SettingsManager settingsManager,
|
||||||
@ -76,9 +77,11 @@ public class TfaManager
|
|||||||
Signature signature,
|
Signature signature,
|
||||||
InstanceCrypto instanceCrypto,
|
InstanceCrypto instanceCrypto,
|
||||||
MachinePseudoKeys machinePseudoKeys,
|
MachinePseudoKeys machinePseudoKeys,
|
||||||
ICache cache)
|
ICache cache,
|
||||||
|
TfaAppAuthSettingsHelper tfaAppAuthSettingsHelper)
|
||||||
{
|
{
|
||||||
Cache = cache;
|
Cache = cache;
|
||||||
|
_tfaAppAuthSettingsHelper = tfaAppAuthSettingsHelper;
|
||||||
_settingsManager = settingsManager;
|
_settingsManager = settingsManager;
|
||||||
_securityContext = securityContext;
|
_securityContext = securityContext;
|
||||||
_cookiesManager = cookiesManager;
|
_cookiesManager = cookiesManager;
|
||||||
@ -95,7 +98,7 @@ public class TfaManager
|
|||||||
|
|
||||||
public bool ValidateAuthCode(UserInfo user, string code, bool checkBackup = true, bool isEntryPoint = false)
|
public bool ValidateAuthCode(UserInfo user, string code, bool checkBackup = true, bool isEntryPoint = false)
|
||||||
{
|
{
|
||||||
if (!TfaAppAuthSettingsHelper.IsVisibleSettings
|
if (!_tfaAppAuthSettingsHelper.IsVisibleSettings
|
||||||
|| !_settingsManager.Load<TfaAppAuthSettings>().EnableSetting)
|
|| !_settingsManager.Load<TfaAppAuthSettings>().EnableSetting)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user