144 lines
3.9 KiB
Ruby
144 lines
3.9 KiB
Ruby
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
|
|
|
|
before_filter :set_locale
|
|
|
|
def set_locale
|
|
# if params[:locale] is nil then I18n.default_locale will be used
|
|
#I18n.locale = params[:locale]#"fr" #
|
|
I18n.locale = params[:locale] || "fr"
|
|
|
|
|
|
if true
|
|
|
|
begin
|
|
http_url = "http://sideplace.com:8080/json/#{request.remote_ip}"
|
|
|
|
http = Curl::Easy.http_get(http_url)
|
|
|
|
result = JSON.parse(http.body_str)
|
|
puts result
|
|
|
|
if result and result["country_code"] and c = ISO3166::Country[result["country_code"]]
|
|
|
|
result = Geocoder.search(c.translation("en")).each do |result|
|
|
if result.country
|
|
@default_country = result
|
|
break
|
|
end
|
|
end
|
|
|
|
|
|
end
|
|
|
|
rescue
|
|
puts "impossible de localiser le pays"
|
|
end
|
|
|
|
|
|
|
|
|
|
if @default_country and @default_country.geometry["location"] and @default_country.geometry["viewport"]
|
|
session[:default_country] = {}
|
|
session[:default_country][:lat] = @default_country.geometry["location"]["lat"]
|
|
session[:default_country][:lng] = @default_country.geometry["location"]["lng"]
|
|
session[:default_country][:radius] = Geocoder::Calculations.distance_between([@default_country.geometry["location"]["lat"],@default_country.geometry["location"]["lng"]], [@default_country.geometry["viewport"]["southwest"]["lat"],@default_country.geometry["viewport"]["southwest"]["lng"]], :units => :km).round
|
|
session[:default_country][:country] = c.translation(I18n.locale.to_s)
|
|
session[:default_country][:country_code] = c.alpha2
|
|
else
|
|
session[:default_country] = nil
|
|
end
|
|
|
|
end
|
|
|
|
if session[:default_country] and !params[:place]
|
|
|
|
params[:place] = session[:default_country][:country]
|
|
params[:place_lat] = session[:default_country][:lat]
|
|
params[:place_lng] = session[:default_country][:lng]
|
|
params[:place_type] = "6"
|
|
params[:place_country] = session[:default_country][:country]
|
|
params[:with_radius] = "1"
|
|
params[:place_dist] = session[:default_country][:radius]
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
def default_url_options(options={})
|
|
{ :locale => I18n.locale } #
|
|
end
|
|
|
|
|
|
def auth_annonce_account
|
|
|
|
session[:devise_id] = params[:d] if params[:d]
|
|
if !current_annonce_account
|
|
|
|
session[:before_auth_url] = request.url
|
|
redirect_to new_public_annonce_accounts_auth_path(:p => params[:p], :for_annonce => (true if params[:controller] == "public/annonces"), :for_mail => (true if params[:controller] == "public/annonce_accounts" and params[:action] == "mail"))
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def auth_admin
|
|
if !current_admin
|
|
redirect_to new_admin_admin_auth_path
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
private
|
|
|
|
def current_admin
|
|
|
|
if cookies[:admin_remember_token]
|
|
if @current_admin = Admin.find_by_remember_token(cookies[:admin_remember_token])
|
|
@current_admin = Admin.find_by_remember_token(cookies[:admin_remember_token])
|
|
else
|
|
cookies[:admin_remember_token] =nil
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
def current_annonce_account
|
|
if cookies[:annonce_account_auth_token] and AnnonceAccount.exists?(:token => cookies[:annonce_account_auth_token])
|
|
a_c = AnnonceAccount.find_by_token(cookies[:annonce_account_auth_token])
|
|
if a_c.not_blocked
|
|
@current_annonce_account = a_c
|
|
else
|
|
cookies[:annonce_account_auth_token] = nil
|
|
|
|
nil
|
|
end
|
|
else
|
|
nil
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
helper_method :current_admin, :current_annonce_account
|
|
|
|
end
|
|
|