Index: app/models/auth_source_ldap.rb =================================================================== --- app/models/auth_source_ldap.rb (revision 17850) +++ app/models/auth_source_ldap.rb (working copy) @@ -53,6 +53,12 @@ def authenticate(login, password) return nil if login.blank? || password.blank? + if self.attr_login.downcase == "samaccountname" + domain = (self.base_dn.gsub(/dc[ |=|\"]*|[\"| ]*/i,'')).gsub(',','.') + self.account= login + "@" + domain + self.account_password = password + end + with_timeout do attrs = get_user_dn(login, password) if attrs && attrs[:dn] && authenticate_dn(attrs[:dn], password) @@ -93,6 +99,11 @@ q = q.to_s.strip return [] unless searchable? && q.present? + if self.attr_login.downcase == "samaccountname" + domain = (self.base_dn.gsub(/dc[ |=|\"]*|[\"| ]*/i,'')).gsub(',','.') + self.account= self.account + "@" + domain + end + results = [] search_filter = base_filter & Net::LDAP::Filter.begins(self.attr_login, q) ldap_con = initialize_ldap_con(self.account, self.account_password)