diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb index c11e25e15..ca575eddb 100644 --- a/app/controllers/users/sessions_controller.rb +++ b/app/controllers/users/sessions_controller.rb @@ -102,10 +102,12 @@ class Users::SessionsController < Devise::SessionsController sign_in(user) generate_demo_project flash[:notice] = t('devise.sessions.signed_in') + redirect_to root_path else - flash.now[:alert] = t('Not correct recovery code') + flash[:alert] = t("devise.sessions.2fa_recovery.not_correct_code") + redirect_to new_user_session_path end - redirect_to root_path + end protected diff --git a/app/models/user.rb b/app/models/user.rb index 268ac7e99..cc0dd5cc4 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -676,7 +676,7 @@ class User < ApplicationRecord otp_recovery_codes.each do |recovery_code| if Devise::Encryptor.compare(self.class, recovery_code, code) - update(otp_recovery_codes: otp_recovery_codes.reject { |i| i == recovery_code }) + update!(otp_recovery_codes: otp_recovery_codes.reject { |i| i == recovery_code }) return true end end diff --git a/app/views/users/sessions/two_factor_auth.html.erb b/app/views/users/sessions/two_factor_auth.html.erb index 38dfdec22..c2db9afa5 100644 --- a/app/views/users/sessions/two_factor_auth.html.erb +++ b/app/views/users/sessions/two_factor_auth.html.erb @@ -3,18 +3,19 @@
-

<%=t "devise.sessions.2fa.title" %>

+

<%= t "devise.sessions.2fa.title" %>

<%= form_with url: users_authenticate_with_two_factor_url, local: true do %> -
+

<%= t "devise.sessions.2fa.description" %>

+

<%= label :otp, t("devise.sessions.2fa.field") %> - <%= text_field_tag(:otp, '', { class: "form-control sci-input-field", placeholder: t("devise.sessions.2fa.placeholder") })%> -

+ <%= text_field_tag(:otp, '', { class: "form-control sci-input-field" })%> +

-
- <%= button_tag t("devise.sessions.new.submit"), type: :submit, class: "btn btn-primary log-in-button" %> -
+

+ <%= button_tag t("devise.sessions.2fa.enter"), type: :submit, class: "btn btn-primary" %> +

- <%= link_to 'I have a bypass code', users_two_factor_recovery_path %> + <%= link_to t("devise.sessions.2fa.bypass_code_link"), users_two_factor_recovery_path %> <% end %>
diff --git a/app/views/users/sessions/two_factor_recovery.html.erb b/app/views/users/sessions/two_factor_recovery.html.erb index d614d621f..3b7f6eaa4 100644 --- a/app/views/users/sessions/two_factor_recovery.html.erb +++ b/app/views/users/sessions/two_factor_recovery.html.erb @@ -3,15 +3,16 @@