Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormattab <matthieu.aubry@gmail.com>2014-10-01 07:26:52 +0400
committermattab <matthieu.aubry@gmail.com>2014-10-01 07:26:52 +0400
commitcd1b52dd2e5807d2871e6037815cae2390c5243d (patch)
tree5e5ff7f877d60f8d477f9d21cf5b2d659acea68a /core/Tracker/Visit.php
parent2cd5f09a52fe28ff644827a58ce0f88f177b3f7e (diff)
Fixes #6313 - When a user starts to get a User ID set, then we set this User ID to the existing visit rather than create a new visit for this user id specifically
Diffstat (limited to 'core/Tracker/Visit.php')
-rw-r--r--core/Tracker/Visit.php31
1 files changed, 26 insertions, 5 deletions
diff --git a/core/Tracker/Visit.php b/core/Tracker/Visit.php
index 75633d95b6..f01f34bc19 100644
--- a/core/Tracker/Visit.php
+++ b/core/Tracker/Visit.php
@@ -513,11 +513,7 @@ class Visit implements VisitInterface
{
$valuesToUpdate = array();
- // Might update the idvisitor when it was forced or overwritten for this visit
- if (strlen($this->visitorInfo['idvisitor']) == Tracker::LENGTH_BINARY_ID) {
- $valuesToUpdate['idvisitor'] = $this->visitorInfo['idvisitor'];
- $visitor->setVisitorColumn('idvisitor', $this->visitorInfo['idvisitor']);
- }
+ $valuesToUpdate = $this->setIdVisitorForExistingVisit($visitor, $valuesToUpdate);
$dimensions = $this->getAllVisitDimensions();
$valuesToUpdate = $this->triggerHookOnDimensions($dimensions, 'onExistingVisit', $visitor, $action, $valuesToUpdate);
@@ -613,4 +609,29 @@ class Visit implements VisitInterface
{
return Config::getInstance()->Tracker['visit_standard_length'];
}
+
+ /**
+ * @param $visitor
+ * @param $valuesToUpdate
+ * @return mixed
+ */
+ private function setIdVisitorForExistingVisit($visitor, $valuesToUpdate)
+ {
+ // Might update the idvisitor when it was forced or overwritten for this visit
+ if (strlen($this->visitorInfo['idvisitor']) == Tracker::LENGTH_BINARY_ID) {
+ $binIdVisitor = $this->visitorInfo['idvisitor'];
+ $visitor->setVisitorColumn('idvisitor', $binIdVisitor);
+ $valuesToUpdate['idvisitor'] = $binIdVisitor;
+ }
+
+ // User ID takes precedence and overwrites idvisitor value
+ $userId = $this->request->getForcedUserId();
+ if ($userId) {
+ $userIdHash = $this->request->getUserIdHashed($userId);
+ $binIdVisitor = Common::hex2bin($userIdHash);
+ $visitor->setVisitorColumn('idvisitor', $binIdVisitor);
+ $valuesToUpdate['idvisitor'] = $binIdVisitor;
+ }
+ return $valuesToUpdate;
+ }
}