Project

General

Profile

Download (1.13 KB) Statistics
| Branch: | Tag: | Revision:
class SettingsController < ApplicationController
include Foreman::Controller::AutoCompleteSearch

before_action :require_admin
helper_method :xeditable?

# This can happen in development when removing a plugin
rescue_from ActiveRecord::SubclassNotFound do |e|
type = (e.to_s =~ /\'(Setting::.*)\'\./) ? Regexp.last_match(1) : 'STI-Type'
render :plain => (e.to_s + "<br><b>run Setting.where(:category=>'#{type}').delete_all to recover.</b>").html_safe, :status => :internal_server_error
end

def index
@settings = Setting.live_descendants.search_for(params[:search])
end

def update
@setting = Setting.friendly.find(params[:id])
if @setting.parse_string_value(params[:setting][:value]) && @setting.save
render :json => @setting
else
error_msg = @setting.errors.full_messages
logger.error "Unprocessable entity Setting (id: #{@setting.id}):\n #{error_msg.join("\n ")}\n"
render :json => {"errors" => error_msg}, :status => :unprocessable_entity
end
end

def xeditable?(object = nil, permission = nil)
# The current user is required to be admin
current_user.admin?
end
end
(47-47/58)