diff options
author | Eugen <eugen@zeonfederated.com> | 2017-04-08 11:36:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-08 11:36:43 +0200 |
commit | c141f0a886c03ff1edf99e36c6d50c4bbdf10418 (patch) | |
tree | fd6217860790e46f532cc99802353cc33120d2b8 | |
parent | 55d03da303dcc2d0cdf0d642534d0f6337e252c9 (diff) | |
parent | 40703b96fa6ccc2b53a266ab67bbb61ce4b64160 (diff) |
Merge pull request #1216 from tootsuite/fix-default-locale-regression
Fix #1165 - Default locale no longer breaks form submissions
-rw-r--r-- | app/controllers/application_controller.rb | 4 | ||||
-rw-r--r-- | app/controllers/concerns/localized.rb | 20 | ||||
-rw-r--r-- | app/controllers/oauth/authorizations_controller.rb | 4 | ||||
-rw-r--r-- | app/controllers/oauth/authorized_applications_controller.rb | 4 |
4 files changed, 21 insertions, 11 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index f00f9c1e3..61ca71123 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,14 +1,13 @@ # frozen_string_literal: true class ApplicationController < ActionController::Base - include Localized - # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception force_ssl if: "Rails.env.production? && ENV['LOCAL_HTTPS'] == 'true'" + include Localized helper_method :current_account rescue_from ActionController::RoutingError, with: :not_found @@ -41,7 +40,6 @@ class ApplicationController < ActionController::Base # If the sign in is after a two week break, we need to regenerate their feed RegenerationWorker.perform_async(current_user.account_id) if current_user.last_sign_in_at < 14.days.ago - return end def check_suspension diff --git a/app/controllers/concerns/localized.rb b/app/controllers/concerns/localized.rb index b6f868090..6528ce45e 100644 --- a/app/controllers/concerns/localized.rb +++ b/app/controllers/concerns/localized.rb @@ -4,13 +4,25 @@ module Localized extend ActiveSupport::Concern included do - before_action :set_locale + around_action :set_locale end + private + def set_locale - I18n.locale = current_user.try(:locale) || default_locale - rescue I18n::InvalidLocale - I18n.locale = default_locale + locale = default_locale + + if user_signed_in? + begin + locale = current_user.try(:locale) || default_locale + rescue I18n::InvalidLocale + locale = default_locale + end + end + + I18n.with_locale(locale) do + yield + end end def default_locale diff --git a/app/controllers/oauth/authorizations_controller.rb b/app/controllers/oauth/authorizations_controller.rb index cdbfde0fb..e9cdf9fa8 100644 --- a/app/controllers/oauth/authorizations_controller.rb +++ b/app/controllers/oauth/authorizations_controller.rb @@ -1,13 +1,13 @@ # frozen_string_literal: true class Oauth::AuthorizationsController < Doorkeeper::AuthorizationsController - include Localized - skip_before_action :authenticate_resource_owner! before_action :store_current_location before_action :authenticate_resource_owner! + include Localized + private def store_current_location diff --git a/app/controllers/oauth/authorized_applications_controller.rb b/app/controllers/oauth/authorized_applications_controller.rb index 09dd5d3c4..395fbc51b 100644 --- a/app/controllers/oauth/authorized_applications_controller.rb +++ b/app/controllers/oauth/authorized_applications_controller.rb @@ -1,13 +1,13 @@ # frozen_string_literal: true class Oauth::AuthorizedApplicationsController < Doorkeeper::AuthorizedApplicationsController - include Localized - skip_before_action :authenticate_resource_owner! before_action :store_current_location before_action :authenticate_resource_owner! + include Localized + private def store_current_location |