From 5ee550a4f2c0ab7c6af6f1e2fb8f02d91e6bfc08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Tue, 26 Dec 2017 02:29:26 +0100 Subject: [PATCH] filter ssids on client side for better privacy --- src/c3nav/site/static/site/js/c3nav.js | 22 ++++++++++++++++++---- src/c3nav/site/templates/site/map.html | 2 +- src/c3nav/site/views.py | 1 + 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/c3nav/site/static/site/js/c3nav.js b/src/c3nav/site/static/site/js/c3nav.js index 52dac7da..efd40789 100644 --- a/src/c3nav/site/static/site/js/c3nav.js +++ b/src/c3nav/site/static/site/js/c3nav.js @@ -85,6 +85,8 @@ c3nav = { c3nav.last_site_update = JSON.parse($main.attr('data-last-site-update')); c3nav.new_site_update = false; + c3nav.ssids = $main.is('[data-ssids]') ? JSON.parse($main.attr('data-ssids')) : null; + history.replaceState(state, window.location.path); c3nav.load_state(state, true); c3nav.update_map_locations(); @@ -1253,15 +1255,27 @@ c3nav = { _last_wifi_scant: 0, _wifi_scan_results: function(data) { - if (!JSON.parse(data).length) { - c3nav._set_user_location(null); - } var now = Date.now(); if (now-2000 < c3nav._last_wifi_scan) return; + data = JSON.parse(data); + if (!data.length) { + c3nav._set_user_location(null); + } + + if (c3nav.ssids) { + var newdata = []; + for (var i=0; i= 0) { + newdata.push(data[i]); + } + } + data = newdata; + } + $.post({ url: '/api/routing/locate/', - data: data, + data: JSON.stringify(data), dataType: 'json', contentType: 'application/json', beforeSend: function(xhrObj){ diff --git a/src/c3nav/site/templates/site/map.html b/src/c3nav/site/templates/site/map.html index 0533479e..b9af0489 100644 --- a/src/c3nav/site/templates/site/map.html +++ b/src/c3nav/site/templates/site/map.html @@ -4,7 +4,7 @@ {% load i18n %} {% block content %} -
+
{% if not embed %} {% get_current_language as CURRENT_LANGUAGE %} diff --git a/src/c3nav/site/views.py b/src/c3nav/site/views.py index 225387f0..006f1a62 100644 --- a/src/c3nav/site/views.py +++ b/src/c3nav/site/views.py @@ -121,6 +121,7 @@ def map_index(request, mode=None, slug=None, slug2=None, details=None, options=N 'initial_level': settings.INITIAL_LEVEL, 'initial_bounds': json.dumps(settings.INITIAL_BOUNDS, separators=(',', ':')), 'last_site_update': json.dumps(SiteUpdate.last_update()), + 'ssids': json.dumps(settings.WIFI_SSIDS, separators=(',', ':')) if settings.WIFI_SSIDS else None, 'embed': bool(embed), }