module Devise::Models::LdapAuthenticatable

LDAP Module, responsible for validating the user credentials via LDAP.

Examples:

User.authenticate('email@test.com', 'password123')  # returns authenticated user or nil
User.find(1).valid_password?('password123')         # returns true/false

Attributes

current_password[R]
password[R]
password_confirmation[RW]

Public Instance Methods

after_ldap_authentication() click to toggle source

Called after a successful LDAP authentication

# File lib/devise_ldap_multiple/model.rb, line 91
def after_ldap_authentication
end
change_password!(current_password) click to toggle source
# File lib/devise_ldap_multiple/model.rb, line 33
def change_password!(current_password)
  raise "Need to set new password first" if @password.blank?
  Devise::LDAP::Adapter.update_own_password(login_with, @password, current_password, current_scope)
end
current_scope() click to toggle source

Returns the current scope / mapping from devise (eg: ‘admin’, ‘user’, ‘staff’)

# File lib/devise_ldap_multiple/model.rb, line 19
def current_scope
  Devise.mappings.find {|k,v| v.class_name == self.class.name}.last.name.downcase
end
in_ldap_group?(group_name, group_attribute = LDAP::DEFAULT_GROUP_UNIQUE_MEMBER_LIST_KEY) click to toggle source
# File lib/devise_ldap_multiple/model.rb, line 66
def in_ldap_group?(group_name, group_attribute = LDAP::DEFAULT_GROUP_UNIQUE_MEMBER_LIST_KEY)
  Devise::LDAP::Adapter.in_ldap_group?(login_with, group_name, group_attribute, current_scope)
end
ldap_dn() click to toggle source
# File lib/devise_ldap_multiple/model.rb, line 70
def ldap_dn
  ldap_entry ? ldap_entry.dn : nil
end
ldap_entry() click to toggle source
# File lib/devise_ldap_multiple/model.rb, line 58
def ldap_entry
  @ldap_entry ||= Devise::LDAP::Adapter.get_ldap_entry(login_with, current_scope)
end
ldap_get_param(param) click to toggle source
# File lib/devise_ldap_multiple/model.rb, line 74
def ldap_get_param(param)
  if ldap_entry && !ldap_entry[param].empty?
    value = ldap_entry.send(param)
  else
    nil
  end
end
ldap_groups() click to toggle source
# File lib/devise_ldap_multiple/model.rb, line 62
def ldap_groups
  Devise::LDAP::Adapter.get_groups(current_scope, login_with)
end
login_with() click to toggle source
# File lib/devise_ldap_multiple/model.rb, line 28
def login_with
  @login_with ||= Devise.mappings.find {|k,v| v.class_name == self.class.name}.last.to.authentication_keys.first
  self[@login_with]
end
password=(new_password) click to toggle source
# File lib/devise_ldap_multiple/model.rb, line 46
def password=(new_password)
  @password = new_password
  if defined?(password_digest) && @password.present? && respond_to?(:encrypted_password=)
    self.encrypted_password = password_digest(@password) 
  end
end
reset_password!(new_password, new_password_confirmation) click to toggle source
# File lib/devise_ldap_multiple/model.rb, line 38
def reset_password!(new_password, new_password_confirmation)
  if new_password == new_password_confirmation && Devise::LDAP::Adapter.password_updatable?(login_with, current_scope)
    Devise::LDAP::Adapter.update_password(login_with, new_password, current_scope)
  end
  clear_reset_password_token if valid?
  save
end
valid_ldap_authentication?(password) click to toggle source

Checks if a resource is valid upon authentication.

# File lib/devise_ldap_multiple/model.rb, line 54
def valid_ldap_authentication?(password)
  Devise::LDAP::Adapter.valid_credentials?(login_with, password, current_scope)
end