Sha256: b1d3825a022a8fec49c1ad066b6e0c8ddb141278557456507eb132bfa88143f2

Contents?: true

Size: 1.52 KB

Versions: 1

Compression:

Stored size: 1.52 KB

Contents

class Admin::RefinerySettingsController < Admin::BaseController

  crudify :refinery_setting, :title_attribute => :title, :order => "name ASC", :searchable => false

  before_filter :sanitise_params, :only => [:create, :update]
  after_filter :fire_setting_callback, :only => [:update]

  def edit
    @refinery_setting = RefinerySetting.find(params[:id])

    render :layout => false if request.xhr?
  end

  def find_all_refinery_settings
    @refinery_settings = RefinerySetting.find :all,
                                              :order => "name ASC",
                                              :conditions => current_user.has_role?(:superuser) ? nil : ["restricted IS NOT ?", true]
  end

  def paginate_all_refinery_settings
    @refinery_settings = RefinerySetting.paginate :page => params[:page],
                                                  :order => "name ASC",
                                                  :conditions => current_user.has_role?(:superuser) ? nil : ["restricted IS NOT ?", true]
  end

private
  # this fires before an update or create to remove any attempts to pass sensitive arguments.
  def sanitise_params
    params.delete(:callback_proc_as_string)
    params.delete(:scoping)
  end

  def fire_setting_callback
    begin
      @refinery_setting.callback_proc.call
    rescue
      logger.warn('Could not fire callback proc. Details:')
      logger.warn(@refinery_setting.inspect)
      logger.warn($!.message)
      logger.warn($!.backtrace)
    end unless @refinery_setting.callback_proc.nil?
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
refinerycms-0.9.7.6 vendor/plugins/refinery_settings/app/controllers/admin/refinery_settings_controller.rb