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.
 
 
 
 
 
 

75 lines
1.7 KiB

class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :check_honeypot
around_filter :set_timezone
helper_method :client_remote_ip
layout :scoped_layout
rescue_from ActiveScaffold::ActionNotAllowed do |exception|
flash.now[:error] = I18n.t("errors.action_not_allowed")
render_access_denied
end
protected
def set_timezone
old_time_zone = Time.zone
Time.zone = cookies[:time_zone] if cookies[:time_zone].present?
yield
ensure
Time.zone = old_time_zone
end
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
def client_remote_ip
@client_remote_ip ||= Settings.uses_proxy ? request.remote_ip : request.ip
end
def check_honeypot
render :nothing => true if params[Settings.honeypot].present?
end
def after_sign_out_path_for(resource_or_scope)
page_path('signed_out')
end
def current_ability
@current_ability ||= ::UserAbility.new(current_user)
end
class UserParameterSanitizer < Devise::ParameterSanitizer
def sign_up
default_params.permit(:full_name, :email, :password)
end
def account_update
default_params.permit(:full_name, :email, :password, :current_password)
end
end
def devise_parameter_sanitizer
super unless resource_class == User
UserParameterSanitizer.new(User, :user, params)
end
def user_for_paper_trail
if user_signed_in?
current_user.to_paper_trail
else
"Public ip:#{client_remote_ip}"
end
end
end