Merge pull request #1145 from tootsuite/feature-customized-default-locale
Allow setting of default language through config
This commit is contained in:
		
						commit
						10459241a8
					
				@ -25,6 +25,9 @@ OTP_SECRET=
 | 
			
		||||
# Only allow registrations with the following e-mail domains
 | 
			
		||||
# EMAIL_DOMAIN_WHITELIST=example1.com|example2.de|etc
 | 
			
		||||
 | 
			
		||||
# Optionally change default language
 | 
			
		||||
# DEFAULT_LOCALE=de
 | 
			
		||||
 | 
			
		||||
# E-mail configuration
 | 
			
		||||
SMTP_SERVER=smtp.mailgun.org
 | 
			
		||||
SMTP_PORT=587
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,8 @@
 | 
			
		||||
# 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
 | 
			
		||||
@ -14,7 +16,6 @@ class ApplicationController < ActionController::Base
 | 
			
		||||
  rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity
 | 
			
		||||
 | 
			
		||||
  before_action :store_current_location, except: :raise_not_found, unless: :devise_controller?
 | 
			
		||||
  before_action :set_locale
 | 
			
		||||
  before_action :set_user_activity
 | 
			
		||||
  before_action :check_suspension, if: :user_signed_in?
 | 
			
		||||
 | 
			
		||||
@ -28,12 +29,6 @@ class ApplicationController < ActionController::Base
 | 
			
		||||
    store_location_for(:user, request.url)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def set_locale
 | 
			
		||||
    I18n.locale = current_user.try(:locale) || I18n.default_locale
 | 
			
		||||
  rescue I18n::InvalidLocale
 | 
			
		||||
    I18n.locale = I18n.default_locale
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def require_admin!
 | 
			
		||||
    redirect_to root_path unless current_user&.admin?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										19
									
								
								app/controllers/concerns/localized.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								app/controllers/concerns/localized.rb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
module Localized
 | 
			
		||||
  extend ActiveSupport::Concern
 | 
			
		||||
 | 
			
		||||
  included do
 | 
			
		||||
    before_action :set_locale
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def set_locale
 | 
			
		||||
    I18n.locale = current_user.try(:locale) || default_locale
 | 
			
		||||
  rescue I18n::InvalidLocale
 | 
			
		||||
    I18n.locale = default_locale
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def default_locale
 | 
			
		||||
    ENV.fetch('DEFAULT_LOCALE') { I18n.default_locale }
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
@ -1,9 +1,10 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Oauth::AuthorizationsController < Doorkeeper::AuthorizationsController
 | 
			
		||||
  include Localized
 | 
			
		||||
 | 
			
		||||
  skip_before_action :authenticate_resource_owner!
 | 
			
		||||
 | 
			
		||||
  before_action :set_locale
 | 
			
		||||
  before_action :store_current_location
 | 
			
		||||
  before_action :authenticate_resource_owner!
 | 
			
		||||
 | 
			
		||||
@ -12,10 +13,4 @@ class Oauth::AuthorizationsController < Doorkeeper::AuthorizationsController
 | 
			
		||||
  def store_current_location
 | 
			
		||||
    store_location_for(:user, request.url)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def set_locale
 | 
			
		||||
    I18n.locale = current_user.try(:locale) || I18n.default_locale
 | 
			
		||||
  rescue I18n::InvalidLocale
 | 
			
		||||
    I18n.locale = I18n.default_locale
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								app/controllers/oauth/authorized_applications_controller.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								app/controllers/oauth/authorized_applications_controller.rb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
# 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!
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def store_current_location
 | 
			
		||||
    store_location_for(:user, request.url)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
@ -11,7 +11,7 @@ Rails.application.routes.draw do
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  use_doorkeeper do
 | 
			
		||||
    controllers authorizations: 'oauth/authorizations'
 | 
			
		||||
    controllers authorizations: 'oauth/authorizations', authorized_applications: 'oauth/authorized_applications'
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  get '.well-known/host-meta', to: 'xrd#host_meta', as: :host_meta
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user