From 4fa137d0b778e86a85c4be3adfbc34a165a9ae6d Mon Sep 17 00:00:00 2001 From: Lucas Kanashiro Date: Mon, 27 Oct 2014 17:43:33 -0200 Subject: [PATCH] Upgrade strategy to use call method --- lib/omniauth/strategies/remote_user.rb | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/lib/omniauth/strategies/remote_user.rb b/lib/omniauth/strategies/remote_user.rb index 9b2aa60..24546de 100644 --- a/lib/omniauth/strategies/remote_user.rb +++ b/lib/omniauth/strategies/remote_user.rb @@ -3,17 +3,21 @@ module OmniAuth class RemoteUser include OmniAuth::Strategy - def validate_remote_user - if !env['HTTP_REMOTE_USER'].blank? - env['HTTP_REMOTE_USER'] - else - env['HTTP_X_FORWARDED_USER'] + def call(env) + request = Rack::Request.new env + cookies = request.cookies + response = Rack::Response.new + + if cookies['gitlab_session'] != nil and !env['HTTP_REMOTE_USER'].blank? + response.redirect "#{OmniAuth.config.path_prefix}/users/auth/env/" end + + super(env) end def request_phase @user_data = {} - @uid = validate_remote_user + @uid = env return fail!(:no_remote_user) unless @uid @user_data[:name] = @uid['NAME'] @@ -26,9 +30,15 @@ module OmniAuth call_app! end - uid { @uid['EMAIL'] } + uid { @uid['NAME'] } info{ @user_data } - end + def callback_phase + fail(:invalid_request) + end + + def auth_hash + Omniauth::Utils.deep_merge(super, {'uid' => @uid}) + end end end -- libgit2 0.21.2