theforeman/foreman

View on GitHub
app/controllers/concerns/foreman/controller/parameters/usergroup.rb

Summary

Maintainability
A
25 mins
Test Coverage
module Foreman::Controller::Parameters::Usergroup
  extend ActiveSupport::Concern
  include Foreman::Controller::Parameters::ExternalUsergroup

  class_methods do
    def usergroup_params_filter
      Foreman::ParameterFilter.new(::Usergroup).tap do |filter|
        filter.permit :name,
          :external_usergroups_attributes => [external_usergroup_params_filter],
          :role_ids => [], :role_names => [],
          :user_ids => [], :user_names => [],
          :usergroup_ids => [], :usergroup_names => []

        filter.permit do |ctx|
          ctx.permit :admin if (User.current.try(:admin?) && ctx.ui?) || ctx.api?
        end
      end
    end
  end

  def usergroup_params
    self.class.usergroup_params_filter.filter_params(params, parameter_filter_context)
  end
end