add_member(*names)
click to toggle source
add_member_sids(*sids)
click to toggle source
def add_member_sids(*sids)
sids.each do |sid|
native_group.Add(Puppet::Util::Windows::ADSI.sid_uri(sid))
end
end
add_members(*names)
click to toggle source
def add_members(*names)
Puppet.deprecation_warning('Puppet::Util::Windows::ADSI::Group#add_members is deprecated; please use Puppet::Util::Windows::ADSI::Group#add_member_sids')
sids = self.class.name_sid_hash(names)
add_member_sids(*sids.values)
end
commit()
click to toggle source
def commit
begin
native_group.SetInfo unless native_group.nil?
rescue WIN32OLERuntimeError => e
if e.message =~ /8007089A/
raise Puppet::Error.new(
"Puppet is not able to create/delete domain groups with the group resource.",
e
)
end
raise Puppet::Error.new( "Group update failed: #{e}", e )
end
self
end
member_sids()
click to toggle source
def member_sids
sids = []
native_group.Members.each do |m|
sids << Puppet::Util::Windows::SID.octet_string_to_sid_object(m.objectSID)
end
sids
end
members()
click to toggle source
def members
members = []
native_group.Members.each {|m| members << m.Name}
members
end
remove_member(*names)
click to toggle source
remove_member_sids(*sids)
click to toggle source
def remove_member_sids(*sids)
sids.each do |sid|
native_group.Remove(Puppet::Util::Windows::ADSI.sid_uri(sid))
end
end
remove_members(*names)
click to toggle source
def remove_members(*names)
Puppet.deprecation_warning('Puppet::Util::Windows::ADSI::Group#remove_members is deprecated; please use Puppet::Util::Windows::ADSI::Group#remove_member_sids')
sids = self.class.name_sid_hash(names)
remove_member_sids(*sids.values)
end
set_members(desired_members, inclusive = true)
click to toggle source
def set_members(desired_members, inclusive = true)
return if desired_members.nil?
current_hash = Hash[ self.member_sids.map { |sid| [sid.to_s, 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
uri()
click to toggle source
def uri
self.class.uri(name)
end