class Chaltron::LDAP::Person

Attributes

entry[RW]

Public Class Methods

find_by_field(field, value) click to toggle source
# File lib/chaltron/ldap/person.rb, line 12
def self.find_by_field(field, value)
  ldap.find_users(field.to_sym => value)
end
find_by_fields(fields = {}) click to toggle source
# File lib/chaltron/ldap/person.rb, line 16
def self.find_by_fields(fields = {})
  ldap.find_users(fields)
end
find_by_uid(uid) click to toggle source
# File lib/chaltron/ldap/person.rb, line 20
def self.find_by_uid(uid)
  ldap.find_by_uid(uid)
end
new(entry, uid) click to toggle source
# File lib/chaltron/ldap/person.rb, line 24
def initialize(entry, uid)
  # Rails.logger.debug { "Instantiating #{self.class.name} with LDIF:\n#{entry.to_ldif}" }
  @entry = entry
  @uid = uid
end
valid_credentials?(login, password) click to toggle source
# File lib/chaltron/ldap/person.rb, line 8
def self.valid_credentials?(login, password)
  ldap.auth(login, password)
end

Private Class Methods

ldap() click to toggle source
# File lib/chaltron/ldap/person.rb, line 86
def self.ldap
  @connection ||= Chaltron::LDAP::Connection.new
end

Public Instance Methods

create_user(roles = []) click to toggle source
# File lib/chaltron/ldap/person.rb, line 30
def create_user(roles = [])
  password = Devise.friendly_token[0, 8].downcase
  user = ::User.new(extern_uid: dn,
    provider: provider,
    fullname: name,
    username: username,
    email: email,
    password: password,
    password_confirmation: password,
    department: department
  )
  user.roles = roles
  user.save
  user
end
department() click to toggle source
# File lib/chaltron/ldap/person.rb, line 46
def department
  entry.send(Chaltron.ldap_field_mappings[:department]).first rescue nil
end
dn() click to toggle source
# File lib/chaltron/ldap/person.rb, line 72
def dn
  entry.dn
end
email() click to toggle source
# File lib/chaltron/ldap/person.rb, line 68
def email
  entry.send(Chaltron.ldap_field_mappings[:email]).first rescue nil
end
ldap_groups() click to toggle source
# File lib/chaltron/ldap/person.rb, line 80
def ldap_groups
  self.class.ldap.find_groups_by_member(self)
end
name() click to toggle source
# File lib/chaltron/ldap/person.rb, line 50
def name
  if Chaltron.ldap_field_mappings[:full_name].nil?
    first_name = entry.send(Chaltron.ldap_field_mappings[:first_name]).first
    last_name = entry.send(Chaltron.ldap_field_mappings[:last_name]).first
    "#{first_name} #{last_name}"
  else
    entry.send(Chaltron.ldap_field_mappings[:full_name]).first
  end
end
provider() click to toggle source
# File lib/chaltron/ldap/person.rb, line 76
def provider
  'ldap'
end
uid() click to toggle source
# File lib/chaltron/ldap/person.rb, line 60
def uid
  entry.send(@uid).first
end
username() click to toggle source
# File lib/chaltron/ldap/person.rb, line 64
def username
  uid
end