Commit 71abf70458ca1f6d85bc828b215931eaf3639b5d

Authored by Dmitriy Zaporozhets
1 parent 6bf117c6

Move ldap auth to LDAP::User. Removed unused code

lib/gitlab/auth.rb
@@ -66,23 +66,12 @@ module Gitlab @@ -66,23 +66,12 @@ module Gitlab
66 Gitlab::AppLogger 66 Gitlab::AppLogger
67 end 67 end
68 68
69 - def ldap_auth(login, password)  
70 - # Check user against LDAP backend if user is not authenticated  
71 - # Only check with valid login and password to prevent anonymous bind results  
72 - return nil unless ldap_conf.enabled && !login.blank? && !password.blank?  
73 -  
74 - ldap = OmniAuth::LDAP::Adaptor.new(ldap_conf)  
75 - ldap_user = ldap.bind_as(  
76 - filter: Net::LDAP::Filter.eq(ldap.uid, login),  
77 - size: 1,  
78 - password: password  
79 - )  
80 -  
81 - User.find_by_extern_uid_and_provider(ldap_user.dn, 'ldap') if ldap_user  
82 - end  
83 -  
84 def ldap_conf 69 def ldap_conf
85 @ldap_conf ||= Gitlab.config.ldap 70 @ldap_conf ||= Gitlab.config.ldap
86 end 71 end
  72 +
  73 + def ldap_auth(login, password)
  74 + Gitlab::LDAP::User.auth(login, password)
  75 + end
87 end 76 end
88 end 77 end
lib/gitlab/backend/grack_ldap.rb
@@ -1,24 +0,0 @@ @@ -1,24 +0,0 @@
1 -require 'omniauth-ldap'  
2 -  
3 -module Grack  
4 - module LDAP  
5 - def ldap_auth(login, password)  
6 - # Check user against LDAP backend if user is not authenticated  
7 - # Only check with valid login and password to prevent anonymous bind results  
8 - return nil unless ldap_conf.enabled && !login.blank? && !password.blank?  
9 -  
10 - ldap = OmniAuth::LDAP::Adaptor.new(ldap_conf)  
11 - ldap_user = ldap.bind_as(  
12 - filter: Net::LDAP::Filter.eq(ldap.uid, login),  
13 - size: 1,  
14 - password: password  
15 - )  
16 -  
17 - User.find_by_extern_uid_and_provider(ldap_user.dn, 'ldap') if ldap_user  
18 - end  
19 -  
20 - def ldap_conf  
21 - @ldap_conf ||= Gitlab.config.ldap  
22 - end  
23 - end  
24 -end  
lib/gitlab/ldap/user.rb
@@ -9,7 +9,7 @@ module Gitlab @@ -9,7 +9,7 @@ module Gitlab
9 class << self 9 class << self
10 def find(uid, email) 10 def find(uid, email)
11 # Look for user with ldap provider and same uid 11 # Look for user with ldap provider and same uid
12 - user = model.ldap.where(extern_uid: uid).last 12 + user = find_by_uid(uid)
13 return user if user 13 return user if user
14 14
15 # Look for user with same emails 15 # Look for user with same emails
@@ -61,6 +61,25 @@ module Gitlab @@ -61,6 +61,25 @@ module Gitlab
61 user 61 user
62 end 62 end
63 63
  64 + def find_by_uid(uid)
  65 + model.ldap.where(extern_uid: uid).last
  66 + end
  67 +
  68 + def auth(login, password)
  69 + # Check user against LDAP backend if user is not authenticated
  70 + # Only check with valid login and password to prevent anonymous bind results
  71 + return nil unless ldap_conf.enabled && login.present? && password.present?
  72 +
  73 + ldap = OmniAuth::LDAP::Adaptor.new(ldap_conf)
  74 + ldap_user = ldap.bind_as(
  75 + filter: Net::LDAP::Filter.eq(ldap.uid, login),
  76 + size: 1,
  77 + password: password
  78 + )
  79 +
  80 + find_by_uid(ldap_user.dn) if ldap_user
  81 + end
  82 +
64 private 83 private
65 84
66 def uid(auth) 85 def uid(auth)
@@ -86,6 +105,10 @@ module Gitlab @@ -86,6 +105,10 @@ module Gitlab
86 def model 105 def model
87 ::User 106 ::User
88 end 107 end
  108 +
  109 + def ldap_conf
  110 + Gitlab.config.ldap
  111 + end
89 end 112 end
90 end 113 end
91 end 114 end