filter ssids on client side for better privacy

This commit is contained in:
Laura Klünder 2017-12-26 02:29:26 +01:00
parent 0aa96f3b9c
commit 5ee550a4f2
3 changed files with 20 additions and 5 deletions

View file

@ -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<data.length; i++) {
if (c3nav.ssids.indexOf(data[i]['ssid']) >= 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){

View file

@ -4,7 +4,7 @@
{% load i18n %}
{% block content %}
<main class="map" data-state="{{ state }}"{% if embed %} data-embed{% endif %} data-last-site-update="{{ last_site_update }}">
<main class="map" data-state="{{ state }}"{% if embed %} data-embed{% endif %} data-last-site-update="{{ last_site_update }}"{% if ssids %} data-ssids="{{ ssids }}"{% endif %}>
<section id="attributions">
{% if not embed %}
{% get_current_language as CURRENT_LANGUAGE %}

View file

@ -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),
}