Sha256: 157e04802014621ddd18af1b1e43bee56889deb5914b2ab47ea87c6e91e32840

Contents?: true

Size: 1.59 KB

Versions: 12

Compression:

Stored size: 1.59 KB

Contents

class Admin::RefinerySettingsController < Admin::BaseController

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

  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 => (["restricted <> ?", true] unless current_user.has_role?(:superuser))
    })
  end

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

private
  def redirect_to_where?
    (from_dialog? && session[:return_to].present?) ? session[:return_to] : admin_refinery_settings_url
  end

  # 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

12 entries across 12 versions & 1 rubygems

Version Path
refinerycms-0.9.7.15 vendor/plugins/refinery_settings/app/controllers/admin/refinery_settings_controller.rb
refinerycms-0.9.7.14 vendor/plugins/refinery_settings/app/controllers/admin/refinery_settings_controller.rb
refinerycms-0.9.8.3 vendor/refinerycms/settings/app/controllers/admin/refinery_settings_controller.rb
refinerycms-0.9.8.2 vendor/refinerycms/settings/app/controllers/admin/refinery_settings_controller.rb
refinerycms-0.9.8.1 vendor/refinerycms/settings/app/controllers/admin/refinery_settings_controller.rb
refinerycms-0.9.8 vendor/refinerycms/settings/app/controllers/admin/refinery_settings_controller.rb
refinerycms-0.9.7.13 vendor/plugins/refinery_settings/app/controllers/admin/refinery_settings_controller.rb
refinerycms-0.9.7.11 vendor/plugins/refinery_settings/app/controllers/admin/refinery_settings_controller.rb
refinerycms-0.9.7.10 vendor/plugins/refinery_settings/app/controllers/admin/refinery_settings_controller.rb
refinerycms-0.9.7.9 vendor/plugins/refinery_settings/app/controllers/admin/refinery_settings_controller.rb
refinerycms-0.9.7.8 vendor/plugins/refinery_settings/app/controllers/admin/refinery_settings_controller.rb
refinerycms-0.9.7.7 vendor/plugins/refinery_settings/app/controllers/admin/refinery_settings_controller.rb