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.
60 lines
1.3 KiB
60 lines
1.3 KiB
module ActiveRecord
|
|
class PremissionDenied < RuntimeError
|
|
end
|
|
end
|
|
|
|
class ApplicationController < ActionController::Base
|
|
# Prevent CSRF attacks by raising an exception.
|
|
# For APIs, you may want to use :null_session instead.
|
|
protect_from_forgery with: :exception
|
|
|
|
#if ENV['RAILS_ENV'] || 'production'
|
|
# force_ssl only: :success
|
|
#end
|
|
|
|
before_filter :capture_page_info
|
|
|
|
@@test_host
|
|
@@test_location
|
|
|
|
def capture_page_info
|
|
init_vars
|
|
$page_info = {:path => request.env['PATH_INFO'], :controller => params['controller'], :action => params['action']}
|
|
ActionMailer::Base.default_url_options = {:host => "#{request.protocol}#{request.host_with_port}"}
|
|
lang = I18n.backend.set_locale (is_test? && @@test_host.present? ? @@test_host : request.host)
|
|
if lang.blank?
|
|
do_404
|
|
elsif lang != true
|
|
@lang = lang
|
|
render 'pages/language_not_enabled', status: 404
|
|
end
|
|
end
|
|
|
|
def self.set_host(host)
|
|
@@test_host = host
|
|
end
|
|
|
|
def self.set_location(location)
|
|
@@test_location = location#.nil? nil : Geocoder.search(location)
|
|
end
|
|
|
|
def self.get_location()
|
|
@@test_location
|
|
end
|
|
|
|
def do_404
|
|
render 'pages/404', status: 404
|
|
end
|
|
|
|
def do_403
|
|
render 'permission_denied', status: 403
|
|
end
|
|
|
|
rescue_from ActiveRecord::RecordNotFound do |exception|
|
|
do_404
|
|
end
|
|
|
|
rescue_from ActiveRecord::PremissionDenied do |exception|
|
|
do_403
|
|
end
|
|
end
|
|
|