Sha256: 09d631dc902d0bd5c70624549d0cc157c96d6863af6da92da13172d0b92e658a

Contents?: true

Size: 1.89 KB

Versions: 22

Compression:

Stored size: 1.89 KB

Contents

class Refinery::AdminBaseController < ApplicationController

  layout proc { |controller| "admin#{"_dialog" if controller.from_dialog?}" }

  before_filter :correct_accept_header, :login_required, :restrict_plugins, :restrict_controller

  helper_method :searching?

  def admin?
    true # we're in the admin base controller, so always true.
  end

  def searching?
    params[:search].present?
  end

protected

  # never take the backend down for maintenance.
  def take_down_for_maintenance?;end

  def error_404
    @page = Page.find_by_menu_match("^/404$", :include => [:parts, :slugs])
    @page[:body] = @page[:body].gsub(/href=(\'|\")\/(\'|\")/, "href='/admin'").gsub("home page", "Dashboard")
    render :template => "/pages/show", :status => 404
  end

  def restrict_plugins
    Refinery::Plugins.set_active( current_user.authorized_plugins ) if current_user.respond_to? :plugins
  end

  def restrict_controller
    if Refinery::Plugins.active.reject {|plugin| params[:controller] !~ Regexp.new(plugin.menu_match) }.empty?
      flash[:error] = "You do not have permission to access this feature."
      logger.warn "'#{current_user.login}' tried to access '#{params[:controller]}' but was rejected."
      redirect_back_or_default(admin_root_url)
    end
  end

  # Override method from application_controller. Not needed in this controller.
  def find_pages_for_menu; end

private
  # This fixes the issue where Internet Explorer browsers are presented with a basic auth dialogue
  # rather than the xhtml one that they *can* accept but don't think they can.
  def correct_accept_header
    if request.user_agent =~ /MSIE (6|7|8)/
      if request.accept == "*/*"
        request.env["HTTP_ACCEPT"] = request.cookies[:http_accept] ||= "application/xml"
      else
        request.cookies[:http_accept] = (request.env["HTTP_ACCEPT"] = (["text/html"] | request.accept.split(', ')).join(', '))
      end
    end
  end

end

Version data entries

22 entries across 22 versions & 2 rubygems

Version Path
jacobat-refinerycms-0.9.6.14 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.34 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.33 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.32 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.31 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.30 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.29 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.28 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.27 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.26 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.25 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.24 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.23 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.22 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.21 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.19 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.18 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.17 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.16 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb
refinerycms-0.9.6.15 vendor/plugins/refinery/lib/refinery/admin_base_controller.rb