OSDN Git Service

Move ldap auth to LDAP::User. Removed unused code
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Mon, 2 Sep 2013 20:50:45 +0000 (23:50 +0300)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Mon, 2 Sep 2013 20:50:45 +0000 (23:50 +0300)
lib/gitlab/auth.rb
lib/gitlab/backend/grack_ldap.rb [deleted file]
lib/gitlab/ldap/user.rb

index 5f4b6c2..34e25bc 100644 (file)
@@ -66,23 +66,12 @@ module Gitlab
       Gitlab::AppLogger
     end
 
-    def ldap_auth(login, password)
-      # Check user against LDAP backend if user is not authenticated
-      # Only check with valid login and password to prevent anonymous bind results
-      return nil unless ldap_conf.enabled && !login.blank? && !password.blank?
-
-      ldap = OmniAuth::LDAP::Adaptor.new(ldap_conf)
-      ldap_user = ldap.bind_as(
-        filter: Net::LDAP::Filter.eq(ldap.uid, login),
-        size: 1,
-        password: password
-      )
-
-      User.find_by_extern_uid_and_provider(ldap_user.dn, 'ldap') if ldap_user
-    end
-
     def ldap_conf
       @ldap_conf ||= Gitlab.config.ldap
     end
+
+    def ldap_auth(login, password)
+      Gitlab::LDAP::User.auth(login, password)
+    end
   end
 end
diff --git a/lib/gitlab/backend/grack_ldap.rb b/lib/gitlab/backend/grack_ldap.rb
deleted file mode 100644 (file)
index 45e98fb..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-require 'omniauth-ldap'
-
-module Grack
-  module LDAP
-    def ldap_auth(login, password)
-      # Check user against LDAP backend if user is not authenticated
-      # Only check with valid login and password to prevent anonymous bind results
-      return nil unless ldap_conf.enabled && !login.blank? && !password.blank?
-
-      ldap = OmniAuth::LDAP::Adaptor.new(ldap_conf)
-      ldap_user = ldap.bind_as(
-        filter: Net::LDAP::Filter.eq(ldap.uid, login),
-        size: 1,
-        password: password
-      )
-
-      User.find_by_extern_uid_and_provider(ldap_user.dn, 'ldap') if ldap_user
-    end
-
-    def ldap_conf
-      @ldap_conf ||= Gitlab.config.ldap
-    end
-  end
-end
index a7a11e5..fe4a93f 100644 (file)
@@ -9,7 +9,7 @@ module Gitlab
       class << self
         def find(uid, email)
           # Look for user with ldap provider and same uid
-          user = model.ldap.where(extern_uid: uid).last
+          user = find_by_uid(uid)
           return user if user
 
           # Look for user with same emails
@@ -61,6 +61,25 @@ module Gitlab
           user
         end
 
+        def find_by_uid(uid)
+          model.ldap.where(extern_uid: uid).last
+        end
+
+        def auth(login, password)
+          # Check user against LDAP backend if user is not authenticated
+          # Only check with valid login and password to prevent anonymous bind results
+          return nil unless ldap_conf.enabled && login.present? && password.present?
+
+          ldap = OmniAuth::LDAP::Adaptor.new(ldap_conf)
+          ldap_user = ldap.bind_as(
+            filter: Net::LDAP::Filter.eq(ldap.uid, login),
+            size: 1,
+            password: password
+          )
+
+          find_by_uid(ldap_user.dn) if ldap_user
+        end
+
         private
 
         def uid(auth)
@@ -86,6 +105,10 @@ module Gitlab
         def model
           ::User
         end
+
+        def ldap_conf
+          Gitlab.config.ldap
+        end
       end
     end
   end