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
Methods included from Enumerable
#uniq
Class Method Details
.create(name) ⇒ Object
596
597
598
599
600
|
# File 'lib/puppet/util/windows/adsi.rb', line 596
def create(name)
raise Puppet::Error.new( _("Cannot create group if user '%{name}' exists.") % { name: name } ) if Puppet::Util::Windows::ADSI::User.exists?(name)
new(name, Puppet::Util::Windows::ADSI.create(name, @object_class))
end
|
592
593
594
|
# File 'lib/puppet/util/windows/adsi.rb', line 592
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
603
604
605
606
607
|
# File 'lib/puppet/util/windows/adsi.rb', line 603
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
618
619
620
|
# File 'lib/puppet/util/windows/adsi.rb', line 618
def members
self.class.get_sids(native_object.Members)
end
|
#remove_member_sids(*sids) ⇒ Object
609
610
611
612
613
|
# File 'lib/puppet/util/windows/adsi.rb', line 609
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
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
|
# File 'lib/puppet/util/windows/adsi.rb', line 623
def set_members(desired_members, inclusive = true)
return if desired_members.nil?
current_hash = Hash[ self.member_sids.map { |sid| [sid.sid, sid] } ]
desired_hash = self.class.name_sid_hash(desired_members)
if !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
|