gen_applocker_xml

in itchef/cookbooks/cpe_applocker/libraries/applocker_helpers.rb [224:257]


    def gen_applocker_xml
      require 'nokogiri'

      
      
      
      builder = Nokogiri::XML::Builder.new do |xml|
        xml.AppLockerPolicy(:Version => 1) do
          
          get_applocker_rules.map do |ruleset, opts|
            xml.RuleCollection(:Type => ruleset,
                               :EnforcementMode =>
                               cpe_applocker_enabled? ? opts['mode'] :
                               'NotConfigured') do
              opts['rules'].each do |rule|
                case rule['type']
                when 'path'
                  gen_file_path_rule(rule, xml)
                when 'hash'
                  gen_file_hash_rule(rule, xml)
                when 'certificate'
                  gen_file_publisher_rule(rule, xml)
                end
              end 
            end 
          end 
        end 
      end 
      builder.to_xml(
        :save_with => Nokogiri::XML::Node::SaveOptions::AS_XML |
                      Nokogiri::XML::Node::SaveOptions::NO_DECLARATION,
      ).strip
    end