You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.3 KiB

13 years ago
class ApplicationController < ActionController::Base
protect_from_forgery
13 years ago
before_filter :check_honeypot
around_filter :set_timezone
12 years ago
helper_method :client_remote_ip
layout :scoped_layout
13 years ago
rescue_from ActiveScaffold::ActionNotAllowed do |exception|
flash.now[:error] = I18n.t("errors.action_not_allowed")
render_access_denied
13 years ago
end
13 years ago
protected
def set_timezone
old_time_zone = Time.zone
12 years ago
Time.zone = cookies[:time_zone] if cookies[:time_zone].present?
yield
ensure
Time.zone = old_time_zone
end
12 years ago
def scoped_layout
return false if request.xhr?
return 'admin' if devise_controller? && resource_name == :admin
user_signed_in? ? 'users' : 'public'
end
def render_access_denied
layout = request.xhr? ? false : 'errors'
render :template => 'errors/access_denied', :layout => layout
end
12 years ago
13 years ago
def client_remote_ip
@client_remote_ip ||= request.env["HTTP_X_FORWARDED_FOR"]
13 years ago
end
13 years ago
def check_honeypot
render :nothing => true if params[Settings.honeypot].present?
end
# Overwriting the sign_out redirect path method
def after_sign_out_path_for(resource_or_scope)
page_path('signed_out')
end
12 years ago
def current_ability
@current_ability ||= ::UserAbility.new(current_user)
end
13 years ago
end