Class: ASF::Service
Instance Attribute Summary collapse
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, #weakref
Constructor Details
This class inherits a constructor from ASF::Base
Instance Attribute Details
#createTimestamp ⇒ Object
Returns the value of attribute createTimestamp.
536
537
538
|
# File 'lib/whimsy/asf/ldap.rb', line 536
def createTimestamp
@createTimestamp
end
|
#modifyTimestamp ⇒ Object
Returns the value of attribute modifyTimestamp.
536
537
538
|
# File 'lib/whimsy/asf/ldap.rb', line 536
def modifyTimestamp
@modifyTimestamp
end
|
Class Method Details
.list(filter = 'cn=*') ⇒ Object
516
517
518
|
# File 'lib/whimsy/asf/ldap.rb', line 516
def self.list(filter='cn=*')
ASF.search_one(base, filter, 'cn').flatten
end
|
.preload ⇒ Object
524
525
526
527
528
529
530
531
532
533
534
|
# File 'lib/whimsy/asf/ldap.rb', line 524
def self.preload
Hash[ASF.search_one(base, "cn=*", %w(dn member modifyTimestamp createTimestamp)).map do |results|
cn = results['dn'].first[/^cn=(.*?),/, 1]
service = ASF::Service.find(cn)
service.modifyTimestamp = results['modifyTimestamp'].first service.createTimestamp = results['createTimestamp'].first members = results['member'] || []
service.members = members
[service, members]
end]
end
|
Instance Method Details
#add(people) ⇒ Object
557
558
559
560
561
562
|
# File 'lib/whimsy/asf/ldap.rb', line 557
def add(people)
people = Array(people).map(&:dn)
mod = ::LDAP::Mod.new(::LDAP::LDAP_MOD_ADD, 'member', people)
ASF.ldap.modify(self.dn, [mod])
@members = nil
end
|
#dn ⇒ Object
520
521
522
|
# File 'lib/whimsy/asf/ldap.rb', line 520
def dn
"cn=#{id},#{self.class.base}"
end
|
#members ⇒ Object
542
543
544
545
546
547
548
|
# File 'lib/whimsy/asf/ldap.rb', line 542
def members
members = weakref(:members) do
ASF.search_one(base, "cn=#{name}", 'member').flatten
end
members.map {|uid| Person.find uid[/uid=(.*?),/,1]}
end
|
#members=(members) ⇒ Object
538
539
540
|
# File 'lib/whimsy/asf/ldap.rb', line 538
def members=(members)
@members = WeakRef.new(members)
end
|
#remove(people) ⇒ Object
550
551
552
553
554
555
|
# File 'lib/whimsy/asf/ldap.rb', line 550
def remove(people)
people = Array(people).map(&:dn)
mod = ::LDAP::Mod.new(::LDAP::LDAP_MOD_DELETE, 'member', people)
ASF.ldap.modify(self.dn, [mod])
@members = nil
end
|