From f1d40b70bb79e2c62480d50b9939b6085121b5a2 Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Mon, 29 Jan 2018 12:07:20 +0100 Subject: [PATCH] Added a hard-cap for visit tracker dates Fixes #2522 --- .../system/visitTracker/VisitTracker.class.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/wcfsetup/install/files/lib/system/visitTracker/VisitTracker.class.php b/wcfsetup/install/files/lib/system/visitTracker/VisitTracker.class.php index 432c362145..06bfd90976 100644 --- a/wcfsetup/install/files/lib/system/visitTracker/VisitTracker.class.php +++ b/wcfsetup/install/files/lib/system/visitTracker/VisitTracker.class.php @@ -94,15 +94,19 @@ class VisitTracker extends SingletonFactory { } } - if (isset($this->userVisits[$objectTypeID])) { - return $this->userVisits[$objectTypeID]; - } + $lifetime = ($this->availableObjectTypes[$objectType]->lifetime) ?: self::DEFAULT_LIFETIME; + $minimum = TIME_NOW - $lifetime; - if ($this->availableObjectTypes[$objectType]->lifetime) { - return TIME_NOW - $this->availableObjectTypes[$objectType]->lifetime; + if (isset($this->userVisits[$objectTypeID])) { + // double times the lifetime period for existing visit data; + // equals 2 weeks for the default lifetime of 7 days + $minimum -= $lifetime; + + // using `max()` here will yield the most recent point in time + return max($this->userVisits[$objectTypeID], $minimum); } - return TIME_NOW - self::DEFAULT_LIFETIME; + return $minimum; } /** -- 2.20.1