Merge pull request #1145 from tootsuite/feature-customized-default-locale
Allow setting of default language through config
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user