Class: ASF::Service

Inherits:
Base
  • Object
show all
Defined in:
lib/whimsy/asf/ldap.rb

Instance Attribute Summary

Attributes inherited from Base

#name

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

[], #base, base, collection, find, #id, #initialize, new, #reference

Constructor Details

This class inherits a constructor from ASF::Base

Class Method Details

.list(filter = 'cn=*') ⇒ Object



328
329
330
# File 'lib/whimsy/asf/ldap.rb', line 328

def self.list(filter='cn=*')
  ASF.search_one(base, filter, 'cn').flatten
end

Instance Method Details

#add(people) ⇒ Object



347
348
349
350
351
# File 'lib/whimsy/asf/ldap.rb', line 347

def add(people)
  people = Array(people).map(&:dn)
  mod = ::LDAP::Mod.new(::LDAP::LDAP_MOD_ADD, 'member', people)
  ASF.ldap.modify(self.dn, [mod])
end

#dnObject



332
333
334
# File 'lib/whimsy/asf/ldap.rb', line 332

def dn
  "cn=#{id},#{self.class.base}"
end

#membersObject



336
337
338
339
# File 'lib/whimsy/asf/ldap.rb', line 336

def members
  ASF.search_one(base, "cn=#{name}", 'member').flatten.
    map {|uid| Person.find uid[/uid=(.*?),/,1]}
end

#remove(people) ⇒ Object



341
342
343
344
345
# File 'lib/whimsy/asf/ldap.rb', line 341

def remove(people)
  people = Array(people).map(&:dn)
  mod = ::LDAP::Mod.new(::LDAP::LDAP_MOD_DELETE, 'member', people)
  ASF.ldap.modify(self.dn, [mod])
end