diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2017-10-06 16:14:14 +0200 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2017-10-06 16:14:14 +0200 |
commit | f9d490dbb910cdd05ca0a0fa38331708181e4b1e (patch) | |
tree | 0329bd87db08ee068d816646adfd48f8b623d608 /app/controllers/google_api | |
parent | 3e26b0dcd113ade77dc8304137c6733cab4c8718 (diff) | |
download | gitlab-ce-f9d490dbb910cdd05ca0a0fa38331708181e4b1e.tar.gz |
Improve redirect uri state and fix all remaining tests
Diffstat (limited to 'app/controllers/google_api')
-rw-r--r-- | app/controllers/google_api/authorizations_controller.rb | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/app/controllers/google_api/authorizations_controller.rb b/app/controllers/google_api/authorizations_controller.rb index 709d1d34796..5551057ff55 100644 --- a/app/controllers/google_api/authorizations_controller.rb +++ b/app/controllers/google_api/authorizations_controller.rb @@ -9,16 +9,21 @@ module GoogleApi session[GoogleApi::CloudPlatform::Client.session_key_for_expires_at] = expires_at.to_s - key, _ = GoogleApi::CloudPlatform::Client - .session_key_for_second_redirect_uri(secure: params[:state]) + state_redirect_uri = redirect_uri_from_session_key(params[:state]) - second_redirect_uri = session[key] - - if second_redirect_uri.present? - redirect_to second_redirect_uri + if state_redirect_uri + redirect_to state_redirect_uri else redirect_to root_path end end + + private + + def redirect_uri_from_session_key(state) + key = GoogleApi::CloudPlatform::Client + .session_key_for_redirect_uri(params[:state]) + session[key] if key + end end end |