Commit b698094d4dcd1558bfcc1611d3572297dd11ae1e

Authored by Dmitriy Zaporozhets
1 parent ed3f4408

Update post-receive worker to use correct identifier

app/workers/post_receive.rb
... ... @@ -21,14 +21,18 @@ class PostReceive
21 21 return false
22 22 end
23 23  
24   - # Ignore push from non-gitlab users
25   - user = if identifier.nil?
26   - raise identifier.inspect
  24 + user = if identifier.blank?
  25 + # Local push from gitlab
27 26 email = project.repository.commit(newrev).author.email rescue nil
28 27 User.find_by_email(email) if email
29   - elsif /^[A-Z0-9._%a-z\-]+@(?:[A-Z0-9a-z\-]+\.)+[A-Za-z]{2,4}$/.match(identifier)
30   - User.find_by_email(identifier)
31   - elsif identifier =~ /key/
  28 +
  29 + elsif identifier =~ /\Auser-\d+\Z/
  30 + # git push over http
  31 + user_id = identifier.gsub("user-", "")
  32 + User.find_by_id(user_id)
  33 +
  34 + elsif identifier =~ /\Akey-\d+\Z/
  35 + # git push over ssh
32 36 key_id = identifier.gsub("key-", "")
33 37 Key.find_by_id(key_id).try(:user)
34 38 end
... ...
lib/gitlab/backend/grack_auth.rb
... ... @@ -7,9 +7,6 @@ module Grack
7 7 @request = Rack::Request.new(env)
8 8 @auth = Request.new(env)
9 9  
10   - # Pass Gitolite update hook
11   - ENV['GL_BYPASS_UPDATE_HOOK'] = "true"
12   -
13 10 # Need this patch due to the rails mount
14 11 @env['PATH_INFO'] = @request.path
15 12 @env['SCRIPT_NAME'] = ""
... ... @@ -35,8 +32,8 @@ module Grack
35 32 self.user = User.find_by_email(login) || User.find_by_username(login)
36 33 return false unless user.try(:valid_password?, password)
37 34  
38   - # Set GL_USER env variable
39   - ENV['GL_USER'] = user.email
  35 + # Set GL_ID env variable
  36 + ENV['GL_ID'] = "user-#{user.id}"
40 37 end
41 38  
42 39 # Git upload and receive
... ...