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,14 +21,18 @@ class PostReceive
21 return false 21 return false
22 end 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 email = project.repository.commit(newrev).author.email rescue nil 26 email = project.repository.commit(newrev).author.email rescue nil
28 User.find_by_email(email) if email 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 key_id = identifier.gsub("key-", "") 36 key_id = identifier.gsub("key-", "")
33 Key.find_by_id(key_id).try(:user) 37 Key.find_by_id(key_id).try(:user)
34 end 38 end
lib/gitlab/backend/grack_auth.rb
@@ -7,9 +7,6 @@ module Grack @@ -7,9 +7,6 @@ module Grack
7 @request = Rack::Request.new(env) 7 @request = Rack::Request.new(env)
8 @auth = Request.new(env) 8 @auth = Request.new(env)
9 9
10 - # Pass Gitolite update hook  
11 - ENV['GL_BYPASS_UPDATE_HOOK'] = "true"  
12 -  
13 # Need this patch due to the rails mount 10 # Need this patch due to the rails mount
14 @env['PATH_INFO'] = @request.path 11 @env['PATH_INFO'] = @request.path
15 @env['SCRIPT_NAME'] = "" 12 @env['SCRIPT_NAME'] = ""
@@ -35,8 +32,8 @@ module Grack @@ -35,8 +32,8 @@ module Grack
35 self.user = User.find_by_email(login) || User.find_by_username(login) 32 self.user = User.find_by_email(login) || User.find_by_username(login)
36 return false unless user.try(:valid_password?, password) 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 end 37 end
41 38
42 # Git upload and receive 39 # Git upload and receive