Class: ASF::Group
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.
428
429
430
|
# File 'lib/whimsy/asf/ldap.rb', line 428
def createTimestamp
@createTimestamp
end
|
#modifyTimestamp ⇒ Object
Returns the value of attribute modifyTimestamp.
428
429
430
|
# File 'lib/whimsy/asf/ldap.rb', line 428
def modifyTimestamp
@modifyTimestamp
end
|
Class Method Details
.list(filter = 'cn=*') ⇒ Object
403
404
405
|
# File 'lib/whimsy/asf/ldap.rb', line 403
def self.list(filter='cn=*')
ASF.search_one(base, filter, 'cn').flatten.map {|cn| find(cn)}
end
|
.preload ⇒ Object
416
417
418
419
420
421
422
423
424
425
426
|
# File 'lib/whimsy/asf/ldap.rb', line 416
def self.preload
Hash[ASF.search_one(base, "cn=*", %w(dn memberUid modifyTimestamp createTimestamp)).map do |results|
cn = results['dn'].first[/^cn=(.*?),/, 1]
group = ASF::Group.find(cn)
group.modifyTimestamp = results['modifyTimestamp'].first group.createTimestamp = results['createTimestamp'].first members = results['memberUid'] || []
group.members = members
[group, members]
end]
end
|
Instance Method Details
#add(people) ⇒ Object
453
454
455
456
457
458
|
# File 'lib/whimsy/asf/ldap.rb', line 453
def add(people)
people = Array(people).map(&:dn)
mod = ::LDAP::Mod.new(::LDAP::LDAP_MOD_ADD, 'memberUid', people)
ASF.ldap.modify(self.dn, [mod])
@members = nil
end
|
#dn ⇒ Object
442
443
444
|
# File 'lib/whimsy/asf/ldap.rb', line 442
def dn
@dn ||= ASF.search_one(base, "cn=#{name}", 'dn').first.first
end
|
#include?(person) ⇒ Boolean
407
408
409
410
411
412
413
414
|
# File 'lib/whimsy/asf/ldap.rb', line 407
def include?(person)
filter = "(&(cn=#{name})(memberUid=#{person.name}))"
if ASF.search_one(base, filter, 'cn').empty?
return false
else
return true
end
end
|
#members ⇒ Object
434
435
436
437
438
439
440
|
# File 'lib/whimsy/asf/ldap.rb', line 434
def members
members = weakref(:members) do
ASF.search_one(base, "cn=#{name}", 'memberUid').flatten
end
members.map {|uid| Person.find(uid)}
end
|
#members=(members) ⇒ Object
430
431
432
|
# File 'lib/whimsy/asf/ldap.rb', line 430
def members=(members)
@members = WeakRef.new(members)
end
|
#remove(people) ⇒ Object
446
447
448
449
450
451
|
# File 'lib/whimsy/asf/ldap.rb', line 446
def remove(people)
people = Array(people).map(&:id)
mod = ::LDAP::Mod.new(::LDAP::LDAP_MOD_DELETE, 'memberUid', people)
ASF.ldap.modify(self.dn, [mod])
@members = nil
end
|