public bool TfaSettings(TfaModel model) { SecurityContext.DemandPermissions(Tenant, SecutiryConstants.EditPortalSettings); var result = false; MessageAction action; switch (model.Type) { case "sms": if (!StudioSmsNotificationSettings.IsVisibleSettings) { throw new Exception(Resource.SmsNotAvailable); } if (!SmsProviderManager.Enabled()) { throw new MethodAccessException(); } StudioSmsNotificationSettings.Enable = true; action = MessageAction.TwoFactorAuthenticationEnabledBySms; if (TfaAppAuthSettings.Enable) { TfaAppAuthSettings.Enable = false; } result = true; break; case "app": if (!TfaAppAuthSettings.IsVisibleSettings) { throw new Exception(Resource.TfaAppNotAvailable); } TfaAppAuthSettings.Enable = true; action = MessageAction.TwoFactorAuthenticationEnabledByTfaApp; if (StudioSmsNotificationSettings.IsVisibleSettings && StudioSmsNotificationSettings.Enable) { StudioSmsNotificationSettings.Enable = false; } result = true; break; default: if (TfaAppAuthSettings.Enable) { TfaAppAuthSettings.Enable = false; } if (StudioSmsNotificationSettings.IsVisibleSettings && StudioSmsNotificationSettings.Enable) { StudioSmsNotificationSettings.Enable = false; } action = MessageAction.TwoFactorAuthenticationDisabled; break; } if (result) { CookiesManager.ResetTenantCookie(HttpContext); } MessageService.Send(action); return(result); }