Commit 71abf70458ca1f6d85bc828b215931eaf3639b5d
1 parent
6bf117c6
Exists in
master
and in
4 other branches
Move ldap auth to LDAP::User. Removed unused code
Showing
3 changed files
with
28 additions
and
40 deletions
Show diff stats
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 |