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, mod_add, mod_delete, mod_replace, new, #reference, #weakref
Constructor Details
This class inherits a constructor from ASF::Base
Instance Attribute Details
#createTimestamp ⇒ Object
Returns the value of attribute createTimestamp.
740
741
742
|
# File 'lib/whimsy/asf/ldap.rb', line 740
def createTimestamp
@createTimestamp
end
|
#modifyTimestamp ⇒ Object
Returns the value of attribute modifyTimestamp.
740
741
742
|
# File 'lib/whimsy/asf/ldap.rb', line 740
def modifyTimestamp
@modifyTimestamp
end
|
Class Method Details
.list(filter = 'cn=*') ⇒ Object
720
721
722
|
# File 'lib/whimsy/asf/ldap.rb', line 720
def self.list(filter='cn=*')
ASF.search_one(base, filter, 'cn').flatten
end
|
.preload ⇒ Object
728
729
730
731
732
733
734
735
736
737
738
|
# File 'lib/whimsy/asf/ldap.rb', line 728
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
762
763
764
765
766
767
768
|
# File 'lib/whimsy/asf/ldap.rb', line 762
def add(people)
@members = nil
people = (Array(people) & members).map(&:dn)
ASF.ldap.modify(self.dn, [ASF::Base.mod_add('member', people)])
ensure
@members = nil
end
|
#dn ⇒ Object
724
725
726
|
# File 'lib/whimsy/asf/ldap.rb', line 724
def dn
"cn=#{id},#{self.class.base}"
end
|
#members ⇒ Object
746
747
748
749
750
751
752
|
# File 'lib/whimsy/asf/ldap.rb', line 746
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
742
743
744
|
# File 'lib/whimsy/asf/ldap.rb', line 742
def members=(members)
@members = WeakRef.new(members)
end
|
#remove(people) ⇒ Object
754
755
756
757
758
759
760
|
# File 'lib/whimsy/asf/ldap.rb', line 754
def remove(people)
@members = nil
people = Array(people - members).map(&:dn)
ASF.ldap.modify(self.dn, [ASF::Base.mod_delete('member', people)])
ensure
@members = nil
end
|