Use Doctrine entity in calling LinkTokens::verifyToken

[MAILPOET-3269]
This commit is contained in:
Jan Lysý
2021-05-27 19:29:03 +02:00
committed by Veljko V
parent d34c923cef
commit 85b9d5b7e4
8 changed files with 77 additions and 55 deletions

View File

@ -5,7 +5,6 @@ namespace MailPoet\Router\Endpoints;
use MailPoet\Config\AccessControl;
use MailPoet\Cron\Workers\StatsNotifications\NewsletterLinkRepository;
use MailPoet\Entities\SendingQueueEntity;
use MailPoet\Models\Subscriber;
use MailPoet\Newsletter\Links\Links;
use MailPoet\Newsletter\NewslettersRepository;
use MailPoet\Newsletter\Sending\SendingQueuesRepository;
@ -99,13 +98,12 @@ class Track {
public function _validateTrackData($data) {
if (!$data->subscriber || !$data->queue || !$data->newsletter) return false;
$subscriberModel = Subscriber::findOne($data->subscriber->getId());
$subscriberTokenMatch = $this->linkTokens->verifyToken($subscriberModel, $data->subscriber_token); // phpcs:ignore Squiz.NamingConventions.ValidVariableName.NotCamelCaps
$subscriberTokenMatch = $this->linkTokens->verifyToken($data->subscriber, $data->subscriber_token); // phpcs:ignore Squiz.NamingConventions.ValidVariableName.NotCamelCaps
if (!$subscriberTokenMatch) {
$this->terminate(403);
}
// return if this is a WP user previewing the newsletter
if ($subscriberModel->isWPUser() && $data->preview) {
if ($data->subscriber->isWPUser() && $data->preview) {
return $data;
}
// check if the newsletter was sent to the subscriber