Commit b698094d4dcd1558bfcc1611d3572297dd11ae1e
1 parent
ed3f4408
Exists in
master
and in
4 other branches
Update post-receive worker to use correct identifier
Showing
2 changed files
with
12 additions
and
11 deletions
Show diff stats
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 |