]> source.dussan.org Git - redmine.git/commitdiff
Refactor: extract an #authenticate_dn method in AuthSourceLdap
authorEric Davis <edavis@littlestreamsoftware.com>
Wed, 17 Feb 2010 16:35:35 +0000 (16:35 +0000)
committerEric Davis <edavis@littlestreamsoftware.com>
Wed, 17 Feb 2010 16:35:35 +0000 (16:35 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3441 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/auth_source_ldap.rb

index 04f4c89b320154edfce8918e010c61a4ebfb48a3..d3ede3005ab2658e07ad3e3ba4b4fd8ceae99279 100644 (file)
@@ -49,12 +49,13 @@ class AuthSourceLdap < AuthSource
     end
     return nil if dn.empty?
     logger.debug "DN found for #{login}: #{dn}" if logger && logger.debug?
-    # authenticate user
-    ldap_con = initialize_ldap_con(dn, password)
-    return nil unless ldap_con.bind
-    # return user's attributes
-    logger.debug "Authentication successful for '#{login}'" if logger && logger.debug?
-    attrs    
+
+    if authenticate_dn(dn, password)
+      logger.debug "Authentication successful for '#{login}'" if logger && logger.debug?
+      return attrs
+    else
+      return nil
+    end
   rescue  Net::LDAP::LdapError => text
     raise "LdapError: " + text
   end
@@ -96,6 +97,12 @@ class AuthSourceLdap < AuthSource
      :auth_source_id => self.id
     ]
   end
+
+  # Check if a DN (user record) authenticates with the password
+  def authenticate_dn(dn, password)
+    ldap_con = initialize_ldap_con(dn, password)
+    return ldap_con.bind
+  end
   
   def self.get_attr(entry, attr_name)
     if !attr_name.blank?