Module: Devise::Models::LdapAuthenticatable::ClassMethods

Defined in:
lib/devise_ldap_authenticatable/model.rb

Instance Method Summary collapse

Instance Method Details

#authenticate_with_ldap(attributes = {}) ⇒ Object

Authenticate a user based on configured attribute keys. Returns the authenticated user if it’s valid or nil.



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/devise_ldap_authenticatable/model.rb', line 48

def authenticate_with_ldap(attributes={}) 
  return nil unless attributes[:email].present? 
  conditions = attributes.slice(:email)

  unless conditions[:email]
    conditions[:email] = "#{conditions[:email]}"
  end

  resource = find_for_ldap_authentication(conditions)
  
  if (resource.blank? and ::Devise.ldap_create_user)
    resource = new(conditions.merge({:password => attributes[:password]}))
  end
   
  if resource.try(:valid_ldap_authentication?, attributes[:password])
    resource.save if resource.new_record?
    return resource
  else
    return nil
  end

end