aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.env.production.sample3
-rw-r--r--app/controllers/application_controller.rb9
-rw-r--r--app/controllers/concerns/localized.rb19
-rw-r--r--app/controllers/oauth/authorizations_controller.rb9
-rw-r--r--app/controllers/oauth/authorized_applications_controller.rb16
-rw-r--r--app/views/oauth/authorized_applications/index.html.haml (renamed from app/views/doorkeeper/authorized_applications/index.html.haml)0
-rw-r--r--config/routes.rb2
7 files changed, 43 insertions, 15 deletions
diff --git a/.env.production.sample b/.env.production.sample
index a4eabc384..44ca984b8 100644
--- a/.env.production.sample
+++ b/.env.production.sample
@@ -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
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index c06142fd4..f00f9c1e3 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -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
diff --git a/app/controllers/concerns/localized.rb b/app/controllers/concerns/localized.rb
new file mode 100644
index 000000000..b6f868090
--- /dev/null
+++ b/app/controllers/concerns/localized.rb
@@ -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
diff --git a/app/controllers/oauth/authorizations_controller.rb b/app/controllers/oauth/authorizations_controller.rb
index 7c25266d8..cdbfde0fb 100644
--- a/app/controllers/oauth/authorizations_controller.rb
+++ b/app/controllers/oauth/authorizations_controller.rb
@@ -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
diff --git a/app/controllers/oauth/authorized_applications_controller.rb b/app/controllers/oauth/authorized_applications_controller.rb
new file mode 100644
index 000000000..09dd5d3c4
--- /dev/null
+++ b/app/controllers/oauth/authorized_applications_controller.rb
@@ -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
diff --git a/app/views/doorkeeper/authorized_applications/index.html.haml b/app/views/oauth/authorized_applications/index.html.haml
index d4719881c..d4719881c 100644
--- a/app/views/doorkeeper/authorized_applications/index.html.haml
+++ b/app/views/oauth/authorized_applications/index.html.haml
diff --git a/config/routes.rb b/config/routes.rb
index ca77191f7..315ad5da5 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -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