Commit 960a88ff6e1e36499ac8937b494b5bef33942299

Authored by Macartur Sousa
1 parent 77e17681

Fixed swap remote user when logged in gitlab

Showing 1 changed file with 44 additions and 25 deletions   Show diff stats
lib/omniauth/strategies/remote_user.rb
... ... @@ -11,7 +11,7 @@ module OmniAuth
11 11  
12 12 def __write_file message
13 13 file = File.open("/home/git/gitlab/log/remote_user.log",'a')
14   - file.write message
  14 + file.write " \n #{message} \n"
15 15 file.close
16 16 end
17 17  
... ... @@ -21,34 +21,56 @@ module OmniAuth
21 21  
22 22 remote_user = env['HTTP_REMOTE_USER']
23 23  
24   - __write_file "#{remote_user}\n"
  24 + __write_file " ... Aqui esta o remote user #{remote_user}\n"
25 25  
26 26  
27 27 session_user = __current_user(env)
28   - if remote_user
29   - if session_user
30   - if remote_user == session_user
31   - super(env)
32   - else
33   - __login(env, remote_user) || super(env)
34   - end
35   - else
36   - __login(env, remote_user) || super(env)
37   - end
38   - else
39   - if session_user
40   - __logout(env) || super(env)
41   - else
42   - super(env)
43   - end
44   - end
  28 + __write_file " .....Aqui esta o session user == #{session_user}\n"
  29 +
  30 + if ! is_in_logout? (env)
  31 + if remote_user
  32 + if session_user
  33 + if remote_user == session_user
  34 + __write_file "Entrei no remote_user == session_user"
  35 + super(env)
  36 + else
  37 + __write_file "Entrei no remote_uer != session user com session user "
  38 + __logout(env)
  39 + end
  40 +
  41 + else
  42 + __write_file "Estou sem session+_user= #{session_user}"
  43 + __login(env, remote_user)
  44 + end
  45 +
  46 + else
  47 +
  48 + if session_user
  49 + __write_file "Estou sem remote user e com session user = #{session_user}"
  50 + __logout(env)
  51 + else
  52 + __write_file "Estou sem remote user e sem session user = #{session_user}"
  53 + super(env)
  54 + end
  55 + end
  56 + else
  57 + super env
  58 + end
45 59  
  60 +
46 61 end
47 62  
48   - def __current_user(env)
49 63  
  64 + def is_in_logout? (env)
  65 + request = Rack::Request.new(env)
  66 + __write_file "REQUEST PATH = #{request.path}"
  67 + request.path == '/users/sign_out'
  68 + end
  69 +
  70 + def __current_user(env)
50 71 __write_file "__CURRENT_USER"
51 72 request = Rack::Request.new(env)
  73 + __write_file "REQUEST PATH = #{request.path}"
52 74 request.cookies.has_key?(options.internal_cookie) && request.cookies[options.internal_cookie]
53 75 end
54 76  
... ... @@ -59,6 +81,7 @@ module OmniAuth
59 81 if response
60 82 response.delete_cookie(options.cookie)
61 83 response.delete_cookie(options.internal_cookie)
  84 + response.redirect "/users/sign_out"
62 85 response
63 86 end
64 87 end
... ... @@ -74,7 +97,6 @@ module OmniAuth
74 97 end
75 98  
76 99 def redirect_if_not_logging_in(request, url)
77   - puts "__redirect_if_not_loggin_in"
78 100  
79 101 if ! [
80 102 '/users/auth/RemoteUser',
... ... @@ -104,10 +126,7 @@ module OmniAuth
104 126  
105 127 def request_phase
106 128 __write_file "request phase\n"
107   -
108   - form = OmniAuth::Form.new(:url => "RemoteUser/callback")
109   - form.html '<script type="text/javascript"> document.forms[0].submit(); </script>'
110   - form.to_response
  129 + redirect "/users/auth/RemoteUser/callback"
111 130 end
112 131 end
113 132 end
... ...