Class: Ldumbd::LdapTree
- Inherits:
-
Object
- Object
- Ldumbd::LdapTree
- Defined in:
- lib/ldumbd/ldap_tree.rb
Instance Method Summary collapse
- #dn(dn_prefix) ⇒ Object
- #find_by_dn(dn) ⇒ Object
-
#initialize(basedn) ⇒ LdapTree
constructor
A new instance of LdapTree.
Constructor Details
#initialize(basedn) ⇒ LdapTree
Returns a new instance of LdapTree.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/ldumbd/ldap_tree.rb', line 13 def initialize(basedn) @basedn = basedn /\Adc=(?<dc>[^,]*)/ =~ basedn root = TreeObject.new({ 'dn_prefix' => '', 'dc' => dc, 'objectClass' => ['top', 'domain']}) people = TreeObject.new({ 'dn_prefix' => 'ou=People', 'ou' => 'People', 'objectClass' => ['top', 'organizationalUnit'] }) groups = TreeObject.new({ 'dn_prefix' => 'ou=Groups', 'ou' => 'Groups', 'objectClass' => ['top', 'organizationalUnit'] }) root.children << people root.children << groups people.children << User groups.children << Group @tree = Hash[ [root, people, groups].map do |object| dn_prefix = object.attributes['dn_prefix'] [dn(dn_prefix), object] end ] end |
Instance Method Details
#dn(dn_prefix) ⇒ Object
40 41 42 |
# File 'lib/ldumbd/ldap_tree.rb', line 40 def dn(dn_prefix) [dn_prefix, @basedn].reject(&:empty?).join(',') end |
#find_by_dn(dn) ⇒ Object
5 6 7 8 9 10 11 |
# File 'lib/ldumbd/ldap_tree.rb', line 5 def find_by_dn(dn) object = @tree[dn] unless object object = TreeObject.by_dn(@basedn, dn) end object or raise LDAP::ResultError::NoSuchObject end |