class Risu::Templates::MissingRootCauses

Public Class Methods

new() click to toggle source
# File lib/risu/templates/missing_root_causes.rb, line 28
def initialize
        @template_info =
        {
                :name => "missing_root_causes",
                :author => "hammackj",
                :version => "0.0.1",
                :renderer => "PDF",
                :description => "Generates a Report of all the findings without a root cause"
        }
end

Public Instance Methods

render(output) click to toggle source
# File lib/risu/templates/missing_root_causes.rb, line 41
def render output
        output.text Report.classification.upcase, :align => :center
        output.text "\n"

        output.font_size(22) do
                output.text Report.title, :align => :center
        end

        output.font_size(18) do
                output.text "Missing Root Causes Report", :align => :center
                output.text "\n"
                output.text "This report was prepared by\n#{Report.author}", :align => :center
        end

        output.text "\n\n\n"

        output.font_size(20) {
                output.fill_color "9B30FF"
                output.text "Critical Findings", :style => :bold
                output.fill_color "000000"
        }

        Item.critical_risks_unique_sorted.each do |item|
                plugin = Plugin.find_by_id(item.plugin_id)
                name = Plugin.find_by_id(item.plugin_id).plugin_name
                count = Item.where(:plugin_id => item.plugin_id).count

                if plugin.root_cause != nil
                        next
                end

                output.text "#{count} - #{name} - #{item.plugin_id}" 
        end

        output.start_new_page

        output.font_size(20) do
                output.fill_color "FF0000"
                output.text "High Findings", :style => :bold
                output.fill_color "000000"
        end

        Item.high_risks_unique_sorted.each do |item|
                plugin = Plugin.find_by_id(item.plugin_id)
                name = Plugin.find_by_id(item.plugin_id).plugin_name
                count = Item.where(:plugin_id => item.plugin_id).count

                if plugin.root_cause != nil
                        next
                end                                        

                output.text "#{count} - #{name} - #{item.plugin_id}"
        end

        output.start_new_page

        output.font_size(20) {
                output.fill_color "FF8040"
                output.text "Medium Findings", :style => :bold
                output.fill_color "000000"
        }

        Item.medium_risks_unique_sorted.each do |item|
                plugin = Plugin.find_by_id(item.plugin_id)
                name = Plugin.find_by_id(item.plugin_id).plugin_name
                count = Item.where(:plugin_id => item.plugin_id).count

                if plugin.root_cause != nil
                        next
                end

                output.text "#{count} - #{name} - #{item.plugin_id}"
        end

        output.start_new_page

        output.font_size(20) {
                output.fill_color "0000FF"
                output.text "Low Findings", :style => :bold
                output.fill_color "000000"
        }

        Item.low_risks_unique_sorted.each do |item|
                plugin = Plugin.find_by_id(item.plugin_id)
                name = Plugin.find_by_id(item.plugin_id).plugin_name
                count = Item.where(:plugin_id => item.plugin_id).count

                if plugin.root_cause != nil
                        next
                end

                output.text "#{count} - #{name} - #{item.plugin_id}"
        end

        output.start_new_page

        output.font_size(20) {
                output.fill_color "008000"
                output.text "Info Findings", :style => :bold
                output.fill_color "000000"
        }
        
        Item.info_risks_unique_sorted.each do |item|
                plugin = Plugin.find_by_id(item.plugin_id)
                name = Plugin.find_by_id(item.plugin_id).plugin_name
                count = Item.where(:plugin_id => item.plugin_id).count

                if plugin.root_cause != nil
                        next
                end
        
                output.text "#{count} - #{name} - #{item.plugin_id}"
        end
end