From: Anton Khorev Date: Sun, 30 Mar 2025 03:46:51 +0000 (+0300) Subject: Permit search parameters separately for each source X-Git-Tag: live~68^2~1 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/2aa533bc94201c55b5d1859580a259cd4e1b29a1?hp=-c Permit search parameters separately for each source --- 2aa533bc94201c55b5d1859580a259cd4e1b29a1 diff --git a/app/controllers/geocoder_controller.rb b/app/controllers/geocoder_controller.rb index 0ccd1d14b..81c179a67 100644 --- a/app/controllers/geocoder_controller.rb +++ b/app/controllers/geocoder_controller.rb @@ -6,17 +6,22 @@ class GeocoderController < ApplicationController before_action :authorize_web before_action :set_locale before_action :require_oauth, :only => [:search] + authorize_resource :class => false + before_action :normalize_params, :only => [:search] + def search - @params = normalize_params @sources = [] - if @params[:lat] && @params[:lon] - @sources.push(:name => "latlon", :url => root_path, :fetch_url => url_for(@params.merge(:action => "search_latlon"))) - @sources.push(:name => "osm_nominatim_reverse", :url => nominatim_reverse_url(:format => "html"), :fetch_url => url_for(@params.merge(:action => "search_osm_nominatim_reverse"))) - elsif @params[:query] - @sources.push(:name => "osm_nominatim", :url => nominatim_url(:format => "html"), :fetch_url => url_for(@params.merge(:action => "search_osm_nominatim"))) + if params[:lat] && params[:lon] + @sources.push(:name => "latlon", :url => root_path, + :fetch_url => url_for(params.permit(:lat, :lon, :latlon_digits, :zoom).merge(:action => "search_latlon"))) + @sources.push(:name => "osm_nominatim_reverse", :url => nominatim_reverse_url(:format => "html"), + :fetch_url => url_for(params.permit(:lat, :lon, :zoom).merge(:action => "search_osm_nominatim_reverse"))) + elsif params[:query] + @sources.push(:name => "osm_nominatim", :url => nominatim_url(:format => "html"), + :fetch_url => url_for(params.permit(:query, :minlat, :minlon, :maxlat, :maxlon).merge(:action => "search_osm_nominatim"))) end if @sources.empty? @@ -221,8 +226,6 @@ class GeocoderController < ApplicationController params[:latlon_digits] = true end end - - params.permit(:query, :lat, :lon, :latlon_digits, :zoom, :minlat, :minlon, :maxlat, :maxlon) end def dms_regexp(name_prefix) diff --git a/app/views/geocoder/search.html.erb b/app/views/geocoder/search.html.erb index efbaab253..b734c07e1 100644 --- a/app/views/geocoder/search.html.erb +++ b/app/views/geocoder/search.html.erb @@ -1,4 +1,4 @@ -<% set_title(@params[:query]) %> +<% set_title(params[:query]) %> <%= render "sidebar_header", :title => t("site.sidebar.search_results") %>