Add an imagery blacklist to capabilities
authorPaul Norman <penorman@mac.com>
Sat, 30 Aug 2014 08:32:35 +0000 (01:32 -0700)
committerTom Hughes <tom@compton.nu>
Sun, 31 Aug 2014 17:41:12 +0000 (18:41 +0100)
This blacklist is for imagery which is of an incompatible license or ToS
but is incorrectly used with some frequency.

This adds a <policy> element to the capabilities XML which contains the
blacklist information within it

app/controllers/api_controller.rb
config/example.application.yml

index 2c442c190585d590647a7705aaff4a1319869278..2f630c6d62f7801c274ea7b23b94a9e1c06f05ef 100644 (file)
@@ -287,8 +287,16 @@ class ApiController < ApplicationController
     status['api'] = api_status.to_s
     status['gpx'] = gpx_status.to_s
     api << status
-
     doc.root << api
+    policy = XML::Node.new 'policy'
+    blacklist = XML::Node.new 'imagery'
+    IMAGERY_BLACKLIST.each do |url_regex| 
+      xnd = XML::Node.new 'blacklist'
+      xnd['regex'] = url_regex.to_s
+      blacklist << xnd
+    end
+    policy << blacklist
+    doc.root << policy
 
     render :text => doc.to_s, :content_type => "text/xml"
   end
index d6a855ef5003b68fb343298bac7b60fd2a1faa73..3fbebdc766c5d82424682433381aeeb5246463ca 100644 (file)
@@ -84,6 +84,11 @@ defaults: &defaults
   require_terms_seen: false
   # Whether to require users to agree to the CTs before editing
   require_terms_agreed: false
+  # Imagery to return in capabilities as blacklisted
+  imagery_blacklist:
+    - ".*\\.googleapis\\.com/.*"
+    - ".*\\.google\\.com/.*"
+    - ".*\\.google\\.ru/.*"
 
 development:
   <<: *defaults