Localize with i18n for Devise::FailureApp (#2309)
This PR fixes I18n.locale for rake middlewares. Mastodon uses Devise that depends on Warden. Warden::Manager can be found in rake middleware. It is outside of the controller. In the case of authentication failed, warden calls throw(:warden). At the time Warden::Manager delegates request to failure_app to generate response and flash[:alert] after catching it. Unfortunately, I18n.locale is already reset then because I18n.with_locale is enabled only inside the controller. If we used I18n.locale=, Devise::FailureApp could get the current locale.
Showing
- app/controllers/application_controller.rb 2 additions, 3 deletionsapp/controllers/application_controller.rb
- app/controllers/concerns/localized.rb 5 additions, 14 deletionsapp/controllers/concerns/localized.rb
- spec/controllers/auth/sessions_controller_spec.rb 14 additions, 0 deletionsspec/controllers/auth/sessions_controller_spec.rb
Loading
Please register or sign in to comment