From e543d86bfe9341a933892295bd605c99763aa8e4 Mon Sep 17 00:00:00 2001 From: Roland Haeder Date: Sun, 24 Jan 2016 16:10:23 +0100 Subject: [PATCH] Introduced common_location_shared() to check if location sharing is always, never or by-user enabled. This commit also excluded geometa.js if location sharing is for any reason disabled as this loads an external reference from Google. Signed-off-by: Roland Haeder --- lib/action.php | 3 +++ lib/util.php | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/lib/action.php b/lib/action.php index 1f50351d3a..62a1a13ec0 100644 --- a/lib/action.php +++ b/lib/action.php @@ -1466,6 +1466,9 @@ class Action extends HTMLOutputter // lawsuit if (Event::handle('StartShowStatusNetScripts', array($this))) { $this->script('util.js'); $this->script('xbImportNode.js'); + if (common_location_shared()) { + $this->script('geometa.js'); + } // This route isn't available in single-user mode. // Not sure why, but it causes errors here. diff --git a/lib/util.php b/lib/util.php index 5ab33e9c97..4b958654f7 100644 --- a/lib/util.php +++ b/lib/util.php @@ -2711,3 +2711,35 @@ function _ve($var) { return var_export($var, true); } + +function common_location_shared() +{ + // Get default setting + $cfg = common_config('location', 'share'); + + if ($cfg == 'always') { + // Always enabled + return true; + } elseif ($cfg == 'never') { + // Never enabled + return false; + } + + // Is the user logged-in? + if (common_logged_in()) { + // Get current user + $user = common_current_user(); + + // Is it there? + if ($user instanceof User) { + // Yes, get profile + $profile = $user->getProfile(); + + // Get it from the profile + return $profile->shareLocation(); + } + } + + // User is not logged in, get default + return common_config('location', 'sharedefault'); +} -- 2.39.5