Class: Puppet::Util::Windows::ADSI::Group
- Inherits:
-
ADSIObject
show all
- Defined in:
- lib/puppet/util/windows.rb,
lib/puppet/util/windows/adsi.rb
Instance Attribute Summary
Attributes inherited from ADSIObject
#name
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from ADSIObject
#[], #[]=, #commit, delete, each, exists?, get_sids, #initialize, localized_domains, name_sid_hash, #native_object, #object_class, parse_name, #sid, #uri, uri
Class Method Details
606
607
608
|
# File 'lib/puppet/util/windows/adsi.rb', line 606
def list_all
Puppet::Util::Windows::ADSI.execquery('select name from win32_group where localaccount = "TRUE"')
end
|
Instance Method Details
#add_member_sids(*sids) ⇒ Object
618
619
620
621
622
|
# File 'lib/puppet/util/windows/adsi.rb', line 618
def add_member_sids(*sids)
sids.each do |sid|
native_object.Add(Puppet::Util::Windows::ADSI.sid_uri(sid))
end
end
|
#members ⇒ Object
Also known as:
member_sids
returns Puppet::Util::Windows::SID::Principal[] may contain objects that represent unresolvable SIDs qualified account names are returned by calling #domain_account
633
634
635
|
# File 'lib/puppet/util/windows/adsi.rb', line 633
def members
self.class.get_sids(native_object.Members)
end
|
#remove_member_sids(*sids) ⇒ Object
624
625
626
627
628
|
# File 'lib/puppet/util/windows/adsi.rb', line 624
def remove_member_sids(*sids)
sids.each do |sid|
native_object.Remove(Puppet::Util::Windows::ADSI.sid_uri(sid))
end
end
|
#set_members(desired_members, inclusive = true) ⇒ Object
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
|
# File 'lib/puppet/util/windows/adsi.rb', line 638
def set_members(desired_members, inclusive = true)
return if desired_members.nil?
current_hash = member_sids.to_h { |sid| [sid.sid, sid] }
desired_hash = self.class.name_sid_hash(desired_members)
unless desired_hash.empty?
members_to_add = (desired_hash.keys - current_hash.keys).map { |sid| desired_hash[sid] }
add_member_sids(*members_to_add)
end
if inclusive
if desired_hash.empty?
members_to_remove = current_hash.values
else
members_to_remove = (current_hash.keys - desired_hash.keys).map { |sid| current_hash[sid] }
end
remove_member_sids(*members_to_remove)
end
end
|