Module: Puppet::Util::Windows::ADSI::Shared
Instance Method Summary collapse
- #get_sids(adsi_child_collection) ⇒ Object
- #localized_domains ⇒ Object
- #name_sid_hash(names) ⇒ Object
- #parse_name(name) ⇒ Object
- #uri(name, host = '.') ⇒ Object
Instance Method Details
#get_sids(adsi_child_collection) ⇒ Object
142 143 144 145 146 147 148 149 |
# File 'lib/puppet/util/windows/adsi.rb', line 142 def get_sids(adsi_child_collection) sids = [] adsi_child_collection.each do |m| sids << Puppet::Util::Windows::SID.octet_string_to_sid_object(m.objectSID) end sids end |
#localized_domains ⇒ Object
110 111 112 113 114 115 116 117 118 119 |
# File 'lib/puppet/util/windows/adsi.rb', line 110 def localized_domains @localized_domains ||= [ # localized version of BUILTIN # for instance VORDEFINIERT on German Windows Puppet::Util::Windows::SID.sid_to_name('S-1-5-32').upcase, # localized version of NT AUTHORITY (can't use S-1-5) # for instance AUTORITE NT on French Windows Puppet::Util::Windows::SID.name_to_sid_object('SYSTEM').domain.upcase ] end |
#name_sid_hash(names) ⇒ Object
151 152 153 154 155 156 157 158 159 160 161 |
# File 'lib/puppet/util/windows/adsi.rb', line 151 def name_sid_hash(names) return {} if names.nil? || names.empty? sids = names.map do |name| sid = Puppet::Util::Windows::SID.name_to_sid_object(name) raise Puppet::Error.new( _("Could not resolve name: %{name}") % { name: name } ) if !sid [sid.sid, sid] end Hash[ sids ] end |
#parse_name(name) ⇒ Object
130 131 132 133 134 135 136 137 138 139 140 |
# File 'lib/puppet/util/windows/adsi.rb', line 130 def parse_name(name) if name =~ /\// raise Puppet::Error.new( _("Value must be in DOMAIN\\user style syntax") ) end matches = name.scan(/((.*)\\)?(.*)/) domain = matches[0][1] || '.' account = matches[0][2] return account, domain end |
#uri(name, host = '.') ⇒ Object
121 122 123 124 125 126 127 128 |
# File 'lib/puppet/util/windows/adsi.rb', line 121 def uri(name, host = '.') host = '.' if (localized_domains << Socket.gethostname.upcase).include?(host.upcase) # group or user account_type = self.name.split('::').last.downcase Puppet::Util::Windows::ADSI.uri(name, account_type, host) end |