From 075614c5d78d1a37879c1f516bfc49b79e54d761 Mon Sep 17 00:00:00 2001
From: Andreas Nedbal <git@pixelde.su>
Date: Sun, 13 Feb 2022 18:52:02 +0100
Subject: [PATCH] Add translations for 2FA controllers and actions

---
 app/controllers/user/sessions_controller.rb | 6 +++---
 app/controllers/user_controller.rb          | 8 ++++----
 config/locales/controllers.en.yml           | 7 +++++++
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/app/controllers/user/sessions_controller.rb b/app/controllers/user/sessions_controller.rb
index 2cab208b..361c6fb3 100644
--- a/app/controllers/user/sessions_controller.rb
+++ b/app/controllers/user/sessions_controller.rb
@@ -16,7 +16,7 @@ class User::SessionsController < Devise::SessionsController
         session[:user_sign_in_uid] = resource.id
         sign_out(resource)
         warden.lock!
-        render 'auth/two_factor_authentication'
+        render "auth/two_factor_authentication"
       else
         if params[:user][:otp_attempt].length == 8
           found = TotpRecoveryCode.where(user_id: resource.id, code: params[:user][:otp_attempt].downcase).delete_all
@@ -24,14 +24,14 @@ class User::SessionsController < Devise::SessionsController
             flash[:info] = "You have #{TotpRecoveryCode.where(user_id: resource.id).count} recovery codes remaining."
             continue_sign_in(resource, resource_name)
           else
-            flash[:error] = t('views.auth.2fa.errors.invalid_code')
+            flash[:error] = t(".error")
             redirect_to new_user_session_url
           end
         elsif resource.authenticate_otp(params[:user][:otp_attempt], drift: APP_CONFIG.fetch(:otp_drift_period, 30).to_i)
           continue_sign_in(resource, resource_name)
         else
           sign_out(resource)
-          flash[:error] = t('views.auth.2fa.errors.invalid_code')
+          flash[:error] = t(".error")
           redirect_to new_user_session_url
         end
       end
diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb
index dce041eb..0cf3b466 100644
--- a/app/controllers/user_controller.rb
+++ b/app/controllers/user_controller.rb
@@ -192,7 +192,7 @@ class UserController < ApplicationController
 
       qr_code = RQRCode::QRCode.new(current_user.provisioning_uri("Retrospring:#{current_user.screen_name}", issuer: "Retrospring"))
 
-      @qr_svg = qr_code.as_svg({offset: 4, module_size: 4, color: '000;fill:var(--primary)'}).html_safe
+      @qr_svg = qr_code.as_svg({offset: 4, module_size: 4, color: "000;fill:var(--primary)"}).html_safe
     else
       @recovery_code_count = current_user.totp_recovery_codes.count
     end
@@ -206,9 +206,9 @@ class UserController < ApplicationController
       @recovery_keys = TotpRecoveryCode.generate_for(current_user)
       current_user.save!
 
-      render 'settings/security/recovery_keys'
+      render "settings/security/recovery_keys"
     else
-      flash[:error] = t('views.auth.2fa.errors.invalid_code')
+      flash[:error] = t(".error")
       redirect_to edit_user_security_path
     end
   end
@@ -217,7 +217,7 @@ class UserController < ApplicationController
     current_user.otp_module = :disabled
     current_user.save!
     current_user.totp_recovery_codes.delete_all
-    flash[:success] = 'Two factor authentication has been disabled for your account.'
+    flash[:success] = t(".success")
     redirect_to edit_user_security_path
   end
 
diff --git a/config/locales/controllers.en.yml b/config/locales/controllers.en.yml
index 751ccf35..f466a568 100644
--- a/config/locales/controllers.en.yml
+++ b/config/locales/controllers.en.yml
@@ -33,9 +33,16 @@ en:
       notice:
         profile_picture: " It might take a few minutes until your new profile picture is shown everywhere."
         profile_header: " It might take a few minutes until your new profile header is shown everywhere."
+    update_2fa:
+      error: :errors.invalid_otp
+    destroy_2fa:
+      success: "Two factor authentication has been disabled for your account."
     update_profile:
       success: :user.update.success
       error: :user.update.error
     update_theme:
       success: "Theme saved successfully."
       error: "Theme saving failed. %{errors}"
+    sessions:
+      create:
+        error: :errors.invalid_otp