Commit 585eb70588ca80d5bcc48a03194f821077375873

Authored by Dmitriy Zaporozhets
1 parent 1d857aae

Fix http push with namespaces. Allow use of username as login

app/roles/repository.rb
... ... @@ -185,7 +185,7 @@ module Repository
185 185 end
186 186  
187 187 def http_url_to_repo
188   - http_url = [Gitlab.config.url, "/", path, ".git"].join('')
  188 + http_url = [Gitlab.config.url, "/", path_with_namespace, ".git"].join('')
189 189 end
190 190  
191 191 # Check if current branch name is marked as protected in the system
... ...
lib/gitlab/backend/grack_auth.rb
... ... @@ -4,10 +4,14 @@ module Grack
4 4  
5 5 def valid?
6 6 # Authentication with username and password
7   - email, password = @auth.credentials
8   - self.user = User.find_by_email(email)
  7 + login, password = @auth.credentials
  8 +
  9 + self.user = User.find_by_email(login) || User.find_by_username(login)
  10 +
9 11 return false unless user.try(:valid_password?, password)
10 12  
  13 + email = user.email
  14 +
11 15 # Set GL_USER env variable
12 16 ENV['GL_USER'] = email
13 17 # Pass Gitolite update hook
... ... @@ -18,8 +22,8 @@ module Grack
18 22 @env['SCRIPT_NAME'] = ""
19 23  
20 24 # Find project by PATH_INFO from env
21   - if m = /^\/([\w\.-]+)\.git/.match(@request.path_info).to_a
22   - self.project = Project.find_by_path(m.last)
  25 + if m = /^\/([\w\.\/-]+)\.git/.match(@request.path_info).to_a
  26 + self.project = Project.find_with_namespace(m.last)
23 27 return false unless project
24 28 end
25 29  
... ...