From a09b20f934706092bbd6fb6a2ebc96b076d33614 Mon Sep 17 00:00:00 2001 From: David Taylor Date: Thu, 31 Jan 2019 10:05:25 +0000 Subject: [PATCH] FIX: Google `HD` and `Prompt` settings should be checked at runtime Previously a server restart was required after settings changes, and it did not work in multisite environments --- lib/auth/google_oauth2_authenticator.rb | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/auth/google_oauth2_authenticator.rb b/lib/auth/google_oauth2_authenticator.rb index 6498715ffc8..297fa50976b 100644 --- a/lib/auth/google_oauth2_authenticator.rb +++ b/lib/auth/google_oauth2_authenticator.rb @@ -85,19 +85,19 @@ class Auth::GoogleOAuth2Authenticator < Auth::Authenticator options = { setup: lambda { |env| strategy = env["omniauth.strategy"] - strategy.options[:client_id] = SiteSetting.google_oauth2_client_id - strategy.options[:client_secret] = SiteSetting.google_oauth2_client_secret + strategy.options[:client_id] = SiteSetting.google_oauth2_client_id + strategy.options[:client_secret] = SiteSetting.google_oauth2_client_secret + + if (google_oauth2_hd = SiteSetting.google_oauth2_hd).present? + strategy.options[:hd] = google_oauth2_hd + end + + if (google_oauth2_prompt = SiteSetting.google_oauth2_prompt).present? + strategy.options[:prompt] = google_oauth2_prompt.gsub("|", " ") + end }, skip_jwt: true } - - if (google_oauth2_prompt = SiteSetting.google_oauth2_prompt).present? - options[:prompt] = google_oauth2_prompt.gsub("|", " ") - end - - google_oauth2_hd = SiteSetting.google_oauth2_hd - options[:hd] = google_oauth2_hd if google_oauth2_hd.present? - # jwt encoding is causing auth to fail in quite a few conditions # skipping omniauth.provider :google_oauth2, options