Sha256: 7791fe27c5f0a38045aa71b015711f8f15eb187925c5ad4c70ed59d743eaf962

Contents?: true

Size: 1.7 KB

Versions: 3

Compression:

Stored size: 1.7 KB

Contents

module Foreman
  module Controller
    module Parameters
      module TemplateParams
        extend ActiveSupport::Concern
        include Foreman::Controller::Parameters::Taxonomix

        class_methods do
          def filter_params_list
            %i(verbose repo branch dirname filter negate metadata_export_mode dirname)
          end

          def extra_import_params
            %i(associate force prefix lock)
          end

          def extra_export_params
            [:metadata_export_mode]
          end

          def template_params_filter(extra_params = [])
            Foreman::ParameterFilter.new(Hash).tap do |filter|
              filter.permit filter_params_list.concat(extra_params)
            end
          end
        end

        def template_import_params
          add_taxonomy_params(self.class.template_params_filter(self.class.extra_import_params)
            .filter_params(params, parameter_filter_context, :none).with_indifferent_access)
        end

        def template_export_params
          add_taxonomy_params(self.class.template_params_filter(self.class.extra_export_params)
            .filter_params(params, parameter_filter_context, :none).with_indifferent_access)
        end

        def organization_params
          self.class.organization_params_filter(Hash).filter_params(params, parameter_filter_context, :none)
        end

        def location_params
          self.class.location_params_filter(Hash).filter_params(params, parameter_filter_context, :none)
        end

        private

        def add_taxonomy_params(params)
          params.merge(:organization_params => organization_params.to_h).merge(:location_params => location_params.to_h)
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
foreman_templates-6.0.3 app/controllers/concerns/foreman/controller/parameters/template_params.rb
foreman_templates-6.0.2 app/controllers/concerns/foreman/controller/parameters/template_params.rb
foreman_templates-6.0.1 app/controllers/concerns/foreman/controller/parameters/template_params.rb