Sha256: 7357051c52f20598b9f0a777add42e3c9175a1bf5c62aea271d19f6848cb0a59

Contents?: true

Size: 1.59 KB

Versions: 16

Compression:

Stored size: 1.59 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
end

class InvalidLocaleError < StandardError
end

Version data entries

16 entries across 16 versions & 2 rubygems

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