From a3fa07987b33af52f11d3c04c61af53ff9ae31d6 Mon Sep 17 00:00:00 2001 From: Thomas Steur Date: Thu, 2 Jan 2020 13:27:26 +1300 Subject: [PATCH] Match configId even when userId is found (#15337) --- core/Tracker/Model.php | 13 ++++++++--- core/Tracker/VisitorRecognizer.php | 3 ++- ...torId__Live.getLastVisitsDetails_month.xml | 23 +++++++------------ ...serId_VisitorId__VisitsSummary.get_day.xml | 14 +++++------ ...rId_VisitorId__VisitsSummary.get_month.xml | 12 +++++----- ...erId_VisitorId__VisitsSummary.get_week.xml | 14 +++++------ ...erId_VisitorId__VisitsSummary.get_year.xml | 12 +++++----- 7 files changed, 46 insertions(+), 45 deletions(-) diff --git a/core/Tracker/Model.php b/core/Tracker/Model.php index d322c5c4baf..023d1194015 100644 --- a/core/Tracker/Model.php +++ b/core/Tracker/Model.php @@ -366,7 +366,7 @@ public function updateAction($idLinkVa, $valuesToUpdate) return $wasInserted; } - public function findVisitor($idSite, $configId, $idVisitor, $fieldsToRead, $shouldMatchOneFieldOnly, $isVisitorIdToLookup, $timeLookBack, $timeLookAhead) + public function findVisitor($idSite, $configId, $idVisitor, $userId, $fieldsToRead, $shouldMatchOneFieldOnly, $isVisitorIdToLookup, $timeLookBack, $timeLookAhead) { $selectCustomVariables = ''; @@ -398,10 +398,17 @@ public function findVisitor($idSite, $configId, $idVisitor, $fieldsToRead, $shou } elseif ($shouldMatchOneFieldOnly) { $visitRow = $this->findVisitorByConfigId($configId, $select, $from, $configIdWhere, $configIdbindSql); } else { - $visitRow = $this->findVisitorByVisitorId($idVisitor, $select, $from, $visitorIdWhere, $visitorIdbindSql); + if (!empty($idVisitor)) { + $visitRow = $this->findVisitorByVisitorId($idVisitor, $select, $from, $visitorIdWhere, $visitorIdbindSql); + } else { + $visitRow = false; + } if (empty($visitRow)) { - $configIdWhere .= ' AND user_id IS NULL '; + if (!empty($userId)) { + $configIdWhere .= 'AND ( user_id IS NULL OR user_id = ? )'; + $configIdbindSql[] = $userId; + } $visitRow = $this->findVisitorByConfigId($configId, $select, $from, $configIdWhere, $configIdbindSql); } } diff --git a/core/Tracker/VisitorRecognizer.php b/core/Tracker/VisitorRecognizer.php index e9cea37a5d4..f43ee5378ad 100644 --- a/core/Tracker/VisitorRecognizer.php +++ b/core/Tracker/VisitorRecognizer.php @@ -83,6 +83,7 @@ public function findKnownVisitor($configId, VisitProperties $visitProperties, Re { $idSite = $request->getIdSite(); $idVisitor = $request->getVisitorId(); + $userId = $request->getForcedUserId(); $isVisitorIdToLookup = !empty($idVisitor); @@ -98,7 +99,7 @@ public function findKnownVisitor($configId, VisitProperties $visitProperties, Re $shouldMatchOneFieldOnly = $this->shouldLookupOneVisitorFieldOnly($isVisitorIdToLookup, $request); list($timeLookBack, $timeLookAhead) = $this->getWindowLookupThisVisit($request); - $visitRow = $this->model->findVisitor($idSite, $configId, $idVisitor, $persistedVisitAttributes, $shouldMatchOneFieldOnly, $isVisitorIdToLookup, $timeLookBack, $timeLookAhead); + $visitRow = $this->model->findVisitor($idSite, $configId, $idVisitor, $userId, $persistedVisitAttributes, $shouldMatchOneFieldOnly, $isVisitorIdToLookup, $timeLookBack, $timeLookAhead); $this->visitRow = $visitRow; if ($visitRow diff --git a/tests/PHPUnit/System/expected/test_UserId_VisitorId__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_UserId_VisitorId__Live.getLastVisitsDetails_month.xml index 9e872153c06..5e4528ba74c 100644 --- a/tests/PHPUnit/System/expected/test_UserId_VisitorId__Live.getLastVisitsDetails_month.xml +++ b/tests/PHPUnit/System/expected/test_UserId_VisitorId__Live.getLastVisitsDetails_month.xml @@ -103,6 +103,8 @@ Mar 6, 2010 13:22:33 5 + 360 + 6 min 0s 2 incredible title! http://example.org/index.htm @@ -111,15 +113,6 @@ 1267881753 0 M - - 2010-03-06 13:22:33 - email@example.com - 2 - - - 4 - 6ccebef4faef4969 - action http://example.org/index.htm @@ -129,7 +122,7 @@ Mar 6, 2010 13:28:33 6 - 1 + 3 second page http://example.org/index.htm @@ -140,10 +133,10 @@ 2010-03-06 13:28:33 email@example.com - 1 + 3 - 5 + 4 2f16b4d842cc294d @@ -169,7 +162,7 @@ 1 - 6 + 5 7dcebef4faef4969 @@ -274,7 +267,7 @@ 3 - 7 + 6 7dcebef4faef4325 @@ -300,7 +293,7 @@ 1 - 8 + 7 6ccebef4faef4969 diff --git a/tests/PHPUnit/System/expected/test_UserId_VisitorId__VisitsSummary.get_day.xml b/tests/PHPUnit/System/expected/test_UserId_VisitorId__VisitsSummary.get_day.xml index 84fa6eb2577..1699c7276fa 100644 --- a/tests/PHPUnit/System/expected/test_UserId_VisitorId__VisitsSummary.get_day.xml +++ b/tests/PHPUnit/System/expected/test_UserId_VisitorId__VisitsSummary.get_day.xml @@ -1,14 +1,14 @@ - 6 + 5 2 - 6 + 5 10 1 - 3 - 1623 + 2 + 1983 3 - 50% - 1.7 - 271 + 40% + 2 + 397 \ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_UserId_VisitorId__VisitsSummary.get_month.xml b/tests/PHPUnit/System/expected/test_UserId_VisitorId__VisitsSummary.get_month.xml index da9ac2d0e50..b7d47796012 100644 --- a/tests/PHPUnit/System/expected/test_UserId_VisitorId__VisitsSummary.get_month.xml +++ b/tests/PHPUnit/System/expected/test_UserId_VisitorId__VisitsSummary.get_month.xml @@ -2,13 +2,13 @@ 7 3 - 8 + 7 12 1 - 5 - 1623 + 4 + 1983 3 - 63% - 1.5 - 203 + 57% + 1.7 + 283 \ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_UserId_VisitorId__VisitsSummary.get_week.xml b/tests/PHPUnit/System/expected/test_UserId_VisitorId__VisitsSummary.get_week.xml index 84fa6eb2577..1699c7276fa 100644 --- a/tests/PHPUnit/System/expected/test_UserId_VisitorId__VisitsSummary.get_week.xml +++ b/tests/PHPUnit/System/expected/test_UserId_VisitorId__VisitsSummary.get_week.xml @@ -1,14 +1,14 @@ - 6 + 5 2 - 6 + 5 10 1 - 3 - 1623 + 2 + 1983 3 - 50% - 1.7 - 271 + 40% + 2 + 397 \ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_UserId_VisitorId__VisitsSummary.get_year.xml b/tests/PHPUnit/System/expected/test_UserId_VisitorId__VisitsSummary.get_year.xml index 06d0514996d..bc04ea29abf 100644 --- a/tests/PHPUnit/System/expected/test_UserId_VisitorId__VisitsSummary.get_year.xml +++ b/tests/PHPUnit/System/expected/test_UserId_VisitorId__VisitsSummary.get_year.xml @@ -1,12 +1,12 @@ - 8 + 7 12 1 - 5 - 1623 + 4 + 1983 3 - 63% - 1.5 - 203 + 57% + 1.7 + 283 \ No newline at end of file