From d7c174fa6387065afc60d7d3ac2f208d075c8b80 Mon Sep 17 00:00:00 2001 From: Martin Keckeis Date: Mon, 13 Jul 2015 12:52:25 +0200 Subject: [PATCH] Fixing #11 --- .gitignore | 2 +- IntranetGeoIP.php | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 674c050..c6ae6cd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ data.php .project .buildpath -.settings/org.eclipse.php.core.prefs +.settings diff --git a/IntranetGeoIP.php b/IntranetGeoIP.php index 3d20303..f682b25 100644 --- a/IntranetGeoIP.php +++ b/IntranetGeoIP.php @@ -8,6 +8,8 @@ use Piwik\Network; use Piwik\Log; use Piwik\Notification; +use Piwik\Plugins\PrivacyManager\Config as PrivacyManagerConfig; +use Piwik\Tracker\Request as TrackerRequest; class IntranetGeoIP extends Plugin { @@ -89,7 +91,7 @@ public function uninstall() * * @see getListHooksRegistered() */ - public function logIntranetSubNetworkInfo(&$visitorInfo) + public function logIntranetSubNetworkInfo(&$visitorInfo, TrackerRequest $request) { if (! file_exists($this->getDataFilePath())) { Log::error('Plugin IntranetGeoIP does not work. File is missing: ' . $this->getDataFilePath()); @@ -104,7 +106,14 @@ public function logIntranetSubNetworkInfo(&$visitorInfo) return; } - $ip = Network\IP::fromBinaryIP($visitorInfo['location_ip']); + $privacyConfig = new PrivacyManagerConfig(); + + $ipBinary = $request->getIp(); + if ($privacyConfig->useAnonymizedIpForVisitEnrichment === true) { + $ipBinary = $visitorInfo['location_ip']; + } + + $ip = Network\IP::fromBinaryIP($ipBinary); foreach ($data as $value) { if (isset($value['networks']) && $ip->isInRanges($value['networks']) === true) {