diff --git a/app/controllers/concerns/remember_device_concern.rb b/app/controllers/concerns/remember_device_concern.rb index 3eee6b1cc47..62c19f2c053 100644 --- a/app/controllers/concerns/remember_device_concern.rb +++ b/app/controllers/concerns/remember_device_concern.rb @@ -1,12 +1,12 @@ module RememberDeviceConcern extend ActiveSupport::Concern - def save_user_opted_remember_device_pref - cookies.encrypted[:user_opted_remember_device_preference] = params[:remember_device] + def save_user_opted_remember_device_pref(remember_device_preference) + cookies.encrypted[:user_opted_remember_device_preference] = remember_device_preference end - def save_remember_device_preference - return if params[:remember_device] != '1' && params[:remember_device] != 'true' + def save_remember_device_preference(remember_device_preference) + return if remember_device_preference != '1' && remember_device_preference != 'true' cookies.encrypted[:remember_device] = { value: RememberDeviceCookie.new(user_id: current_user.id, created_at: Time.zone.now).to_json, expires: remember_device_cookie_expiration, diff --git a/app/controllers/concerns/two_factor_authenticatable_methods.rb b/app/controllers/concerns/two_factor_authenticatable_methods.rb index d23e5aec323..d2f88563ab8 100644 --- a/app/controllers/concerns/two_factor_authenticatable_methods.rb +++ b/app/controllers/concerns/two_factor_authenticatable_methods.rb @@ -85,9 +85,9 @@ def reset_attempt_count_if_user_no_longer_locked_out ).call end - def handle_remember_device - save_user_opted_remember_device_pref - save_remember_device_preference + def handle_remember_device_preference(remember_device_preference) + save_user_opted_remember_device_pref(remember_device_preference) + save_remember_device_preference(remember_device_preference) end # Method will be renamed in the next refactor. diff --git a/app/controllers/two_factor_authentication/backup_code_verification_controller.rb b/app/controllers/two_factor_authentication/backup_code_verification_controller.rb index ac95d916b83..231ca2b780d 100644 --- a/app/controllers/two_factor_authentication/backup_code_verification_controller.rb +++ b/app/controllers/two_factor_authentication/backup_code_verification_controller.rb @@ -61,6 +61,7 @@ def handle_invalid_backup_code def handle_result(result) if result.success? + handle_remember_device_preference(backup_code_params[:remember_device]) handle_valid_verification_for_authentication_context( auth_method: TwoFactorAuthenticatable::AuthMethod::BACKUP_CODE, ) @@ -72,7 +73,7 @@ def handle_result(result) end def backup_code_params - params.require(:backup_code_verification_form).permit :backup_code + params.require(:backup_code_verification_form).permit(:backup_code, :remember_device) end def handle_valid_backup_code diff --git a/app/controllers/two_factor_authentication/otp_verification_controller.rb b/app/controllers/two_factor_authentication/otp_verification_controller.rb index 9804a65166f..6a3697aa3bf 100644 --- a/app/controllers/two_factor_authentication/otp_verification_controller.rb +++ b/app/controllers/two_factor_authentication/otp_verification_controller.rb @@ -21,7 +21,7 @@ def create result = otp_verification_form.submit post_analytics(result) if result.success? - handle_remember_device + handle_remember_device_preference(params[:remember_device]) if UserSessionContext.confirmation_context?(context) handle_valid_confirmation_otp diff --git a/app/controllers/two_factor_authentication/totp_verification_controller.rb b/app/controllers/two_factor_authentication/totp_verification_controller.rb index 9190fa183ed..d55520cfdec 100644 --- a/app/controllers/two_factor_authentication/totp_verification_controller.rb +++ b/app/controllers/two_factor_authentication/totp_verification_controller.rb @@ -26,7 +26,7 @@ def create handle_valid_verification_for_authentication_context( auth_method: TwoFactorAuthenticatable::AuthMethod::TOTP, ) - handle_remember_device + handle_remember_device_preference(params[:remember_device]) redirect_to after_sign_in_path_for(current_user) else handle_invalid_otp(context: context, type: 'totp') diff --git a/app/controllers/two_factor_authentication/webauthn_verification_controller.rb b/app/controllers/two_factor_authentication/webauthn_verification_controller.rb index f567c10b06c..71d86ab312d 100644 --- a/app/controllers/two_factor_authentication/webauthn_verification_controller.rb +++ b/app/controllers/two_factor_authentication/webauthn_verification_controller.rb @@ -47,7 +47,7 @@ def handle_valid_webauthn auth_method: TwoFactorAuthenticatable::AuthMethod::WEBAUTHN, ) end - handle_remember_device + handle_remember_device_preference(params[:remember_device]) redirect_to after_sign_in_path_for(current_user) end diff --git a/app/controllers/users/totp_setup_controller.rb b/app/controllers/users/totp_setup_controller.rb index f9325094da2..a1bbbfd6bc8 100644 --- a/app/controllers/users/totp_setup_controller.rb +++ b/app/controllers/users/totp_setup_controller.rb @@ -82,7 +82,7 @@ def process_valid_code handle_valid_verification_for_confirmation_context( auth_method: TwoFactorAuthenticatable::AuthMethod::TOTP, ) - handle_remember_device + handle_remember_device_preference(params[:remember_device]) flash[:success] = t('notices.totp_configured') user_session.delete(:new_totp_secret) redirect_to next_setup_path || after_mfa_setup_path diff --git a/app/controllers/users/webauthn_setup_controller.rb b/app/controllers/users/webauthn_setup_controller.rb index 83b35aeeb5a..7960ec0219b 100644 --- a/app/controllers/users/webauthn_setup_controller.rb +++ b/app/controllers/users/webauthn_setup_controller.rb @@ -155,7 +155,7 @@ def process_valid_webauthn(form) platform_authenticator: form.platform_authenticator?, enabled_mfa_methods_count: mfa_user.enabled_mfa_methods_count, ) - handle_remember_device + handle_remember_device_preference(params[:remember_device]) if form.platform_authenticator? handle_valid_verification_for_confirmation_context( auth_method: TwoFactorAuthenticatable::AuthMethod::WEBAUTHN_PLATFORM, diff --git a/app/views/partials/backup_code/_entry_fields.html.erb b/app/views/partials/backup_code/_entry_fields.html.erb index b3919abaed8..4fa5131e844 100644 --- a/app/views/partials/backup_code/_entry_fields.html.erb +++ b/app/views/partials/backup_code/_entry_fields.html.erb @@ -1,4 +1,4 @@ -