Class: LdapFluff

Inherits:
Object
  • Object
show all
Defined in:
lib/ldap_fluff/error.rb,
lib/ldap_fluff/ldap_fluff.rb

Defined Under Namespace

Classes: ActiveDirectory, Config, Error, FreeIPA, Generic, GenericMemberService, NetIQ, Posix

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = {}) ⇒ LdapFluff

Returns a new instance of LdapFluff.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/ldap_fluff/ldap_fluff.rb', line 7

def initialize(config = {})
  config = LdapFluff::Config.new(config)
  case config.server_type
  when :posix
    @ldap = Posix.new(config)
  when :active_directory
    @ldap = ActiveDirectory.new(config)
  when :free_ipa
    @ldap = FreeIPA.new(config)
  when :netiq
    @ldap = NetIQ.new(config)
  else
    raise 'unknown server_type'
  end
  @instrumentation_service = config.instrumentation_service
end

Instance Attribute Details

#instrumentation_serviceObject

Returns the value of attribute instrumentation_service.



5
6
7
# File 'lib/ldap_fluff/ldap_fluff.rb', line 5

def instrumentation_service
  @instrumentation_service
end

#ldapObject

Returns the value of attribute ldap.



5
6
7
# File 'lib/ldap_fluff/ldap_fluff.rb', line 5

def ldap
  @ldap
end

Instance Method Details

#authenticate?(uid, password) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
27
28
29
30
31
32
# File 'lib/ldap_fluff/ldap_fluff.rb', line 24

def authenticate?(uid, password)
  instrument('authenticate.ldap_fluff', :uid => uid) do |_payload|
    if password.nil? || password.empty?
      false
    else
      !!@ldap.bind?(uid, password)
    end
  end
end

#find_group(gid) ⇒ Object

return ldap entry



84
85
86
87
88
# File 'lib/ldap_fluff/ldap_fluff.rb', line 84

def find_group(gid)
  instrument('find_group.ldap_fluff', :gid => gid) do |_payload|
    @ldap.member_service.find_group(gid)
  end
end

#find_user(uid) ⇒ Object

return ldap entry



77
78
79
80
81
# File 'lib/ldap_fluff/ldap_fluff.rb', line 77

def find_user(uid)
  instrument('find_user.ldap_fluff', :uid => uid) do |_payload|
    @ldap.member_service.find_user(uid)
  end
end

#group_list(uid) ⇒ Object

return a list[] of groups for a given uid



48
49
50
51
52
# File 'lib/ldap_fluff/ldap_fluff.rb', line 48

def group_list(uid)
  instrument('group_list.ldap_fluff', :uid => uid) do |_payload|
    @ldap.groups_for_uid(uid)
  end
end

#is_in_groups?(uid, grouplist) ⇒ Boolean

return true if a user is in all of the groups in grouplist

Returns:

  • (Boolean)


56
57
58
59
60
# File 'lib/ldap_fluff/ldap_fluff.rb', line 56

def is_in_groups?(uid, grouplist)
  instrument('is_in_groups?.ldap_fluff', :uid => uid, :grouplist => grouplist) do |_payload|
    @ldap.is_in_groups(uid, grouplist, true)
  end
end

#testObject



34
35
36
37
38
# File 'lib/ldap_fluff/ldap_fluff.rb', line 34

def test
  instrument('test.ldap_fluff') do |_payload|
    @ldap.ldap.open {}
  end
end

#user_list(gid) ⇒ Object

return a list[] of users for a given gid



41
42
43
44
45
# File 'lib/ldap_fluff/ldap_fluff.rb', line 41

def user_list(gid)
  instrument('user_list.ldap_fluff', :gid => gid) do |_payload|
    @ldap.users_for_gid(gid)
  end
end

#valid_group?(gid) ⇒ Boolean

return true if group exists

Returns:

  • (Boolean)


70
71
72
73
74
# File 'lib/ldap_fluff/ldap_fluff.rb', line 70

def valid_group?(gid)
  instrument('valid_group?.ldap_fluff', :gid => gid) do |_payload|
    @ldap.group_exists? gid
  end
end

#valid_user?(uid) ⇒ Boolean

return true if uid exists

Returns:

  • (Boolean)


63
64
65
66
67
# File 'lib/ldap_fluff/ldap_fluff.rb', line 63

def valid_user?(uid)
  instrument('valid_user?.ldap_fluff', :uid => uid) do |_payload|
    @ldap.user_exists? uid
  end
end