Merge remote-tracking branch 'openstreetmap/pull/1099'
authorTom Hughes <tom@compton.nu>
Mon, 7 Dec 2015 14:57:19 +0000 (14:57 +0000)
committerTom Hughes <tom@compton.nu>
Mon, 7 Dec 2015 14:57:19 +0000 (14:57 +0000)
.travis.yml
Gemfile
Gemfile.lock
app/assets/images/browse/shop_car_parts.16.png [new file with mode: 0644]
app/assets/javascripts/index/search.js
app/assets/javascripts/osm.js.erb
app/assets/stylesheets/browse.scss
app/controllers/user_controller.rb
config/initializers/uri_sanitizer.rb [new file with mode: 0644]

index 1af42245277b028b42beee4c463596c2500d8769..441bdf6daaffb0e3038266e4284548ce99f7cd80 100644 (file)
@@ -1,7 +1,7 @@
 sudo: false
 language: ruby
 rvm:
-  - 1.9.3
+  - 2.1.7
 cache: bundler
 addons:
   postgresql: 9.1
diff --git a/Gemfile b/Gemfile
index 8f81ab3ec943e7b46bbd6eea9cb15eb374e93179..3789c9fb8df1a6ac500e6ed5787a7c5782a3edce 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -54,6 +54,9 @@ gem "i18n-js", ">= 3.0.0.rc10"
 gem "rack-cors"
 gem "actionpack-page_caching"
 
+# Sanitise URIs
+gem "rack-uri_sanitizer"
+
 # Omniauth for authentication
 gem "omniauth"
 gem "omniauth-openid"
index 18015c244f9d307ce8ed5dd7d2328fe32cdb2a75..83d9ae473bce5ca70e45f576d25370da8622279b 100644 (file)
@@ -39,12 +39,12 @@ GEM
       minitest (~> 5.1)
       thread_safe (~> 0.3, >= 0.3.4)
       tzinfo (~> 1.1)
-    addressable (2.3.8)
+    addressable (2.4.0)
     arel (6.0.3)
     ast (2.1.0)
     astrolabe (1.3.1)
       parser (~> 2.2)
-    autoprefixer-rails (6.1.0.1)
+    autoprefixer-rails (6.1.2)
       execjs
       json
     bigdecimal (1.1.0)
@@ -70,10 +70,11 @@ GEM
     colorize (0.7.7)
     composite_primary_keys (8.1.1)
       activerecord (~> 4.2.0)
-    coveralls (0.8.9)
+    concurrent-ruby (1.0.0)
+    coveralls (0.8.10)
       json (~> 1.8)
       rest-client (>= 1.6.8, < 2)
-      simplecov (~> 0.10.0)
+      simplecov (~> 0.11.0)
       term-ansicolor (~> 1.3)
       thor (~> 0.19.1)
       tins (~> 1.6.0)
@@ -146,14 +147,14 @@ GEM
       mime-types (>= 1.16, < 3)
     mime-types (2.99)
     mimemagic (0.3.0)
-    mini_portile (0.6.2)
+    mini_portile2 (2.0.0)
     minitest (5.8.3)
     multi_json (1.11.2)
     multi_xml (0.5.5)
     multipart-post (2.0.0)
     netrc (0.11.0)
-    nokogiri (1.6.6.4)
-      mini_portile (~> 0.6.0)
+    nokogiri (1.6.7)
+      mini_portile2 (~> 2.0.0.rc2)
     nokogumbo (1.4.1)
       nokogiri
     oauth (0.4.7)
@@ -197,7 +198,7 @@ GEM
     parser (2.2.3.0)
       ast (>= 1.1, < 3.0)
     pg (0.18.4)
-    poltergeist (1.8.0)
+    poltergeist (1.8.1)
       capybara (~> 2.1)
       cliver (~> 0.3.1)
       multi_json (~> 1.0)
@@ -213,6 +214,7 @@ GEM
       ruby-openid (>= 2.1.8)
     rack-test (0.6.3)
       rack (>= 1.0)
+    rack-uri_sanitizer (0.0.2)
     rails (4.2.5)
       actionmailer (= 4.2.5)
       actionpack (= 4.2.5)
@@ -270,13 +272,14 @@ GEM
       sprockets (>= 2.8, < 4.0)
       sprockets-rails (>= 2.0, < 4.0)
       tilt (>= 1.1, < 3)
-    simplecov (0.10.0)
+    simplecov (0.11.1)
       docile (~> 1.1.0)
       json (~> 1.8)
       simplecov-html (~> 0.10.0)
     simplecov-html (0.10.0)
     soap4r-ruby1.9 (2.0.5)
-    sprockets (3.4.0)
+    sprockets (3.5.1)
+      concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
     sprockets-rails (2.3.3)
       actionpack (>= 3.0)
@@ -350,6 +353,7 @@ DEPENDENCIES
   psych
   r2
   rack-cors
+  rack-uri_sanitizer
   rails (= 4.2.5)
   rails-i18n (~> 4.0.0)
   redcarpet
diff --git a/app/assets/images/browse/shop_car_parts.16.png b/app/assets/images/browse/shop_car_parts.16.png
new file mode 100644 (file)
index 0000000..6c07e4d
Binary files /dev/null and b/app/assets/images/browse/shop_car_parts.16.png differ
index 485920c8e1f901f93c1a04b1e29bdcdac4ba0146..9481e271e9565446c9e1abee595f531a0ec1a3c5 100644 (file)
@@ -119,6 +119,7 @@ OSM.Search = function(map) {
   page.pushstate = page.popstate = function(path) {
     var params = querystring.parse(path.substring(path.indexOf('?') + 1));
     $(".search_form input[name=query]").val(params.query);
+    $(".describe_location").hide();
     OSM.loadSidebarContent(path, page.load);
   };
 
index 0f044c24fea192b2983f820dc81d29bdcf7e04f9..6a8b856bee2beaf155122cfcbb760a47e4931c64 100644 (file)
@@ -53,7 +53,12 @@ OSM = {
         j = pair.indexOf('='),
         key = pair.slice(0, j),
         val = pair.slice(++j);
-      params[key] = decodeURIComponent(val);
+
+      try {
+        params[key] = decodeURIComponent(val);
+      } catch (e) {
+        // Ignore parse exceptions
+      }
     }
 
     return params;
index f2241b4cf12e5a894c464f71b83369b0136c510e..f497a22d86db7eb994ada531fbc07dc26110ed18 100644 (file)
@@ -98,6 +98,7 @@
   .shop.books::before { content: image-url('browse/shop_books.16.png'); }
   .shop.butcher::before { content: image-url('browse/shop_butcher.p.16.png'); }
   .shop.clothes::before { content: image-url('browse/shop_clothes.16.png'); }
+  .shop.car_parts::before { content: image-url('browse/shop_car_parts.16.png'); }
   .shop.car_repair::before { content: image-url('browse/shop_car_repair.16.png'); }
   .shop.convenience::before { content: image-url('browse/shop_convenience.p.16.png'); }
   .shop.diy::before { content: image-url('browse/shop_doityourself.16.png'); }
index fca0e3be7250f9290aa2f5c69136b1ddf152f4ff..6390ff19ed914c731a8f12b1394b397696203822 100644 (file)
@@ -497,7 +497,7 @@ class UserController < ApplicationController
     when "openid"
       email_verified = uid.match(%r{https://www.google.com/accounts/o8/id?(.*)}) ||
                        uid.match(%r{https://me.yahoo.com/(.*)})
-    when "google"
+    when "google", "facebook"
       email_verified = true
     else
       email_verified = false
diff --git a/config/initializers/uri_sanitizer.rb b/config/initializers/uri_sanitizer.rb
new file mode 100644 (file)
index 0000000..7f3f3d0
--- /dev/null
@@ -0,0 +1,2 @@
+# Add URI sanitizer to rack middleware
+Rails.configuration.middleware.insert_before Rack::Runtime, Rack::URISanitizer