Method: Puppet::Util::Windows::Security#add_access_allowed_ace

Defined in:
lib/puppet/util/windows/security.rb

#add_access_allowed_ace(acl, mask, sid, inherit = nil) ⇒ Object



378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
# File 'lib/puppet/util/windows/security.rb', line 378

def add_access_allowed_ace(acl, mask, sid, inherit = nil)
  inherit ||= NO_INHERITANCE

  Puppet::Util::Windows::SID.string_to_sid_ptr(sid) do |sid_ptr|
    if Puppet::Util::Windows::SID.IsValidSid(sid_ptr) == FFI::WIN32_FALSE
      raise Puppet::Util::Windows::Error.new(_("Invalid SID"))
    end

    if AddAccessAllowedAceEx(acl, ACL_REVISION, inherit, mask, sid_ptr) == FFI::WIN32_FALSE
      raise Puppet::Util::Windows::Error.new(_("Failed to add access control entry"))
    end
  end

  # ensure this method is void if it doesn't raise
  nil
end