]> git.openstreetmap.org Git - rails.git/blobdiff - app/helpers/browse_helper.rb
Fix security policy for mapillary in iD
[rails.git] / app / helpers / browse_helper.rb
index ef7b3f554b8ffbb8dafb4eeb25799c6613a2ced1..c4ce41b064df9550fb0113ec9b628a4120f74189 100644 (file)
@@ -1,4 +1,4 @@
-require "uri"
+require "cgi"
 
 module BrowseHelper
   def printable_name(object, version = false)
@@ -99,7 +99,7 @@ module BrowseHelper
 
   private
 
-  ICON_TAGS = %w(aeroway amenity barrier building highway historic landuse leisure man_made natural railway shop tourism waterway).freeze
+  ICON_TAGS = %w[aeroway amenity barrier building highway historic landuse leisure man_made natural railway shop tourism waterway].freeze
 
   def icon_tags(object)
     object.tags.find_all { |k, _v| ICON_TAGS.include? k }.sort
@@ -114,9 +114,9 @@ module BrowseHelper
     # the correct page.
     lookup_us = lookup.tr(" ", "_")
 
-    if page = WIKI_PAGES[locale][type][lookup_us] rescue nil
+    if page = WIKI_PAGES.dig(locale, type, lookup_us)
       url = "http://wiki.openstreetmap.org/wiki/#{page}?uselang=#{locale}"
-    elsif page = WIKI_PAGES["en"][type][lookup_us] rescue nil
+    elsif page = WIKI_PAGES.dig("en", type, lookup_us)
       url = "http://wiki.openstreetmap.org/wiki/#{page}?uselang=#{locale}"
     end
 
@@ -151,7 +151,7 @@ module BrowseHelper
       # Must break it up to correctly build the url
       value = Regexp.last_match(1)
       section = "#" + Regexp.last_match(2)
-      encoded_section = "#" + URI.encode(Regexp.last_match(2).gsub(/ +/, "_"), /[^A-Za-z0-9:_]/).tr("%", ".")
+      encoded_section = "#" + CGI.escape(Regexp.last_match(2).gsub(/ +/, "_")).tr("%", ".")
     else
       section = ""
       encoded_section = ""