Parent

Files

Class/Module Index [+]

Quicksearch

Chef::ReservedNames::Win32::Security::ACE

Attributes

struct[R]

Public Class Methods

access_allowed(sid, mask, flags = 0) click to toggle source
# File lib/chef/win32/security/ace.rb, line 45
def self.access_allowed(sid, mask, flags = 0)
  create_ace_with_mask_and_sid(Chef::ReservedNames::Win32::API::Security::ACCESS_ALLOWED_ACE_TYPE, flags, mask, sid)
end
access_denied(sid, mask, flags = 0) click to toggle source
# File lib/chef/win32/security/ace.rb, line 49
def self.access_denied(sid, mask, flags = 0)
  create_ace_with_mask_and_sid(Chef::ReservedNames::Win32::API::Security::ACCESS_DENIED_ACE_TYPE, flags, mask, sid)
end
new(pointer, owner = nil) click to toggle source
# File lib/chef/win32/security/ace.rb, line 30
def initialize(pointer, owner = nil)
  if Chef::ReservedNames::Win32::API::Security::ACE_WITH_MASK_AND_SID.supports?(pointer.read_uchar)
    @struct = Chef::ReservedNames::Win32::API::Security::ACE_WITH_MASK_AND_SID.new pointer
  else
    # TODO Support ALL the things
    @struct = Chef::ReservedNames::Win32::API::Security::ACE_HEADER.new pointer
  end
  # Keep a reference to the actual owner of this memory so we don't get freed
  @owner = owner
end
size_with_sid(sid) click to toggle source
# File lib/chef/win32/security/ace.rb, line 41
def self.size_with_sid(sid)
  Chef::ReservedNames::Win32::API::Security::ACE_WITH_MASK_AND_SID.offset_of(:SidStart) + sid.size
end

Public Instance Methods

==(other) click to toggle source
# File lib/chef/win32/security/ace.rb, line 55
def ==(other)
  type == other.type && flags == other.flags && mask == other.mask && sid == other.sid
end
dup() click to toggle source
# File lib/chef/win32/security/ace.rb, line 59
def dup
  ACE.create_ace_with_mask_and_sid(type, flags, mask, sid)
end
explicit?() click to toggle source
# File lib/chef/win32/security/ace.rb, line 71
def explicit?
  ! inherited?
end
flags() click to toggle source
# File lib/chef/win32/security/ace.rb, line 63
def flags
  struct[:AceFlags]
end
flags=(val) click to toggle source
# File lib/chef/win32/security/ace.rb, line 67
def flags=(val)
  struct[:AceFlags] = val
end
inherited?() click to toggle source
# File lib/chef/win32/security/ace.rb, line 75
def inherited?
  (struct[:AceFlags] & Chef::ReservedNames::Win32::API::Security::INHERITED_ACE) != 0
end
mask() click to toggle source
# File lib/chef/win32/security/ace.rb, line 79
def mask
  struct[:Mask]
end
mask=(val) click to toggle source
# File lib/chef/win32/security/ace.rb, line 83
def mask=(val)
  struct[:Mask] = val
end
pointer() click to toggle source
# File lib/chef/win32/security/ace.rb, line 87
def pointer
  struct.pointer
end
sid() click to toggle source
# File lib/chef/win32/security/ace.rb, line 95
def sid
  # The SID runs off the end of the structure, starting at :SidStart.
  # Use pointer arithmetic to get a pointer to that location.
  Chef::ReservedNames::Win32::Security::SID.new(struct.pointer + struct.offset_of(:SidStart))
end
size() click to toggle source
# File lib/chef/win32/security/ace.rb, line 91
def size
  struct[:AceSize]
end
to_s() click to toggle source
# File lib/chef/win32/security/ace.rb, line 101
def to_s
  "#{sid.account_name}/flags:#{flags.to_s(16)}/mask:#{mask.to_s(16)}"
end
type() click to toggle source
# File lib/chef/win32/security/ace.rb, line 105
def type
  struct[:AceType]
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.