Sha256: 2b60e888dd0b2d930e2758861f1c11ec4358d41fb8d13b508a1ed2aa46c76387

Contents?: true

Size: 1.3 KB

Versions: 1

Compression:

Stored size: 1.3 KB

Contents

module Api::V2
  module Compliance
    class PoliciesController < ::Api::V2::BaseController
      include Api::Version2
      include Foreman::Controller::SmartProxyAuth

      add_puppetmaster_filters :content

      before_filter :find_resource, :only => %w{content}

      attr_reader :detected_proxy

      def resource_name
        'Scaptimony::Policy'
      end

      def get_resource
        instance_variable_get :"@policy" or raise 'no resource loaded'
      end

      resource_description do
        resource_id 'scaptimony_policies'
        api_version 'v2'
        api_base_url "/api/v2"
      end

      api :GET, '/compliance/policies/:id/content', N_("Show a policy's SCAP content")
      param :id, :identifier, :required => true

      def content
        @scap_content = @policy.scap_content
        send_data @scap_content.scap_file,
                  :type     => 'application/xml',
                  :filename => @scap_content.original_filename
      end

      private
      def find_resource
        not_found and return if params[:id].blank?
        instance_variable_set("@policy", Scaptimony::Policy.find(params[:id]))
      end

      def action_permission
        case params[:action]
          when 'content'
            :view
          else
            super
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
foreman_openscap-0.3.4 app/controllers/api/v2/compliance/policies_controller.rb