diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2018-09-09 04:10:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-09 04:10:44 +0200 |
commit | 2288d50a7bb4afcec4cfbcaa4b5cffaabd1df437 (patch) | |
tree | 7280431cffebdd35edcf99b53e92321b8a693dad /app/controllers/oauth | |
parent | 2492c12281e4fc692fc4f0fe9dc0abb0455b50d8 (diff) |
Add force_login option to OAuth authorize page (#8655)
* Add force_login option to OAuth authorize page For when a user needs to sign into an app from multiple accounts on the same server * When logging out from modal header, redirect back after re-login
Diffstat (limited to 'app/controllers/oauth')
-rw-r--r-- | app/controllers/oauth/authorizations_controller.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/app/controllers/oauth/authorizations_controller.rb b/app/controllers/oauth/authorizations_controller.rb index e9cdf9fa8..cebbdc4d0 100644 --- a/app/controllers/oauth/authorizations_controller.rb +++ b/app/controllers/oauth/authorizations_controller.rb @@ -13,4 +13,18 @@ class Oauth::AuthorizationsController < Doorkeeper::AuthorizationsController def store_current_location store_location_for(:user, request.url) end + + def render_success + if skip_authorization? || (matching_token? && !truthy_param?('force_login')) + redirect_or_render authorize_response + elsif Doorkeeper.configuration.api_only + render json: pre_auth + else + render :new + end + end + + def truthy_param?(key) + ActiveModel::Type::Boolean.new.cast(params[key]) + end end |