Sha256: a9f3bc84f3f46e36470ae26eb5924824c38b3ec73dd6960d7ff82cc9c33fe96c

Contents?: true

Size: 1.78 KB

Versions: 13

Compression:

Stored size: 1.78 KB

Contents

class ApplicationController < ActionController::Base
  protect_from_forgery

  rescue_from CanCan::AccessDenied, :with => :render_403
  rescue_from ActiveRecord::RecordNotFound, :with => :render_404

  before_filter :set_locale
  
  private
  def render_403
    return if performed?
    if user_signed_in?
      respond_to do |format|
        format.html {render :template => 'page/403', :status => 403}
        format.xml {render :template => 'page/403', :status => 403}
        format.json
      end
    else
      respond_to do |format|
        format.html {redirect_to new_user_session_url}
        format.xml {render :template => 'page/403', :status => 403}
        format.json
      end
    end
  end

  def render_404
    return if performed?
    respond_to do |format|
      format.html {render :template => 'page/404', :status => 404}
      format.xml {render :template => 'page/404', :status => 404}
      format.json
    end
  end

  def set_locale
    if params[:locale]
      unless I18n.available_locales.include?(params[:locale].to_s.intern)
        raise InvalidLocaleError
      end
    end
    if user_signed_in?
      locale = params[:locale] || session[:locale] || current_user.locale.try(:to_sym)
    else
      locale = params[:locale] || session[:locale]
    end
    if locale
      I18n.locale = @locale = session[:locale] = locale.to_sym
    else
      I18n.locale = @locale = session[:locale] = I18n.default_locale
    end
  rescue InvalidLocaleError
    @locale = I18n.default_locale
  end

  def access_denied
    raise CanCan::AccessDenied
  end

  def get_item
    @item = Item.find(params[:item_id]) if params[:item_id]
    authorize! :show, @item if @item
  end

  def store_page
    flash[:page] = params[:page] if params[:page].to_i > 0
  end
end

class InvalidLocaleError < StandardError
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
enju_inter_library_loan-0.1.0.pre7 spec/dummy/app/controllers/application_controller.rb
enju_inter_library_loan-0.1.0.pre6 spec/dummy/app/controllers/application_controller.rb
enju_inter_library_loan-0.1.0.pre5 spec/dummy/app/controllers/application_controller.rb
enju_inter_library_loan-0.1.0.pre4 spec/dummy/app/controllers/application_controller.rb
enju_inter_library_loan-0.1.0.pre3 spec/dummy/app/controllers/application_controller.rb
enju_inter_library_loan-0.1.0.pre2 spec/dummy/app/controllers/application_controller.rb
enju_inter_library_loan-0.1.0.pre spec/dummy/app/controllers/application_controller.rb
enju_inter_library_loan-0.0.6 spec/dummy/app/controllers/application_controller.rb
enju_inter_library_loan-0.0.5 spec/dummy/app/controllers/application_controller.rb
enju_inter_library_loan-0.0.4 spec/dummy/app/controllers/application_controller.rb
enju_inter_library_loan-0.0.3 spec/dummy/app/controllers/application_controller.rb
enju_inter_library_loan-0.0.2 spec/dummy/app/controllers/application_controller.rb
enju_inter_library_loan-0.0.1 spec/dummy/app/controllers/application_controller.rb