Fix generate generating unsubscribe token for Subscriber

[MAILPOET-3031]
This commit is contained in:
Jan Lysý
2021-03-26 10:35:26 +01:00
committed by Veljko V
parent 8d58c9beea
commit 2f263fb988

View File

@ -6,6 +6,7 @@ use Exception;
use MailPoet\Entities\NewsletterEntity; use MailPoet\Entities\NewsletterEntity;
use MailPoet\Entities\SubscriberEntity; use MailPoet\Entities\SubscriberEntity;
use MailPoet\Newsletter\NewslettersRepository; use MailPoet\Newsletter\NewslettersRepository;
use MailPoet\Subscribers\SubscribersRepository;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
class Security { class Security {
@ -15,8 +16,12 @@ class Security {
/** @var NewslettersRepository */ /** @var NewslettersRepository */
private $newslettersRepository; private $newslettersRepository;
public function __construct(NewslettersRepository $newslettersRepository) { /** @var SubscribersRepository */
private $subscribersRepository;
public function __construct(NewslettersRepository $newslettersRepository, SubscribersRepository $subscribersRepository) {
$this->newslettersRepository = $newslettersRepository; $this->newslettersRepository = $newslettersRepository;
$this->subscribersRepository = $subscribersRepository;
} }
public static function generateToken($action = 'mailpoet_token') { public static function generateToken($action = 'mailpoet_token') {
@ -71,8 +76,10 @@ class Security {
public function generateUnsubscribeTokenByEntity($entity): string { public function generateUnsubscribeTokenByEntity($entity): string {
$repository = null; $repository = null;
if ($entity instanceof NewsletterEntity || $entity instanceof SubscriberEntity) { if ($entity instanceof NewsletterEntity) {
$repository = $this->newslettersRepository; $repository = $this->newslettersRepository;
} elseif ($entity instanceof SubscriberEntity) {
$repository = $this->subscribersRepository;
} else { } else {
throw new Exception('Unsupported Entity type'); throw new Exception('Unsupported Entity type');
} }