Use SubscriberEntity instead of the Model
[MAILPOET-4514]
This commit is contained in:
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
namespace MailPoet\Subscription\Captcha\Validator;
|
namespace MailPoet\Subscription\Captcha\Validator;
|
||||||
|
|
||||||
use MailPoet\Models\Subscriber;
|
|
||||||
use MailPoet\Subscribers\SubscriberIPsRepository;
|
use MailPoet\Subscribers\SubscriberIPsRepository;
|
||||||
|
use MailPoet\Subscribers\SubscribersRepository;
|
||||||
use MailPoet\Subscription\Captcha\CaptchaPhrase;
|
use MailPoet\Subscription\Captcha\CaptchaPhrase;
|
||||||
use MailPoet\Subscription\Captcha\CaptchaSession;
|
use MailPoet\Subscription\Captcha\CaptchaSession;
|
||||||
use MailPoet\Subscription\SubscriptionUrlFactory;
|
use MailPoet\Subscription\SubscriptionUrlFactory;
|
||||||
@ -28,18 +28,23 @@ class BuiltInCaptchaValidator implements CaptchaValidator {
|
|||||||
/** @var SubscriberIPsRepository */
|
/** @var SubscriberIPsRepository */
|
||||||
private $subscriberIPsRepository;
|
private $subscriberIPsRepository;
|
||||||
|
|
||||||
|
/** @var SubscribersRepository */
|
||||||
|
private $subscribersRepository;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
SubscriptionUrlFactory $subscriptionUrlFactory,
|
SubscriptionUrlFactory $subscriptionUrlFactory,
|
||||||
CaptchaPhrase $captchaPhrase,
|
CaptchaPhrase $captchaPhrase,
|
||||||
CaptchaSession $captchaSession,
|
CaptchaSession $captchaSession,
|
||||||
WPFunctions $wp,
|
WPFunctions $wp,
|
||||||
SubscriberIPsRepository $subscriberIPsRepository
|
SubscriberIPsRepository $subscriberIPsRepository,
|
||||||
|
SubscribersRepository $subscribersRepository
|
||||||
) {
|
) {
|
||||||
$this->subscriptionUrlFactory = $subscriptionUrlFactory;
|
$this->subscriptionUrlFactory = $subscriptionUrlFactory;
|
||||||
$this->captchaPhrase = $captchaPhrase;
|
$this->captchaPhrase = $captchaPhrase;
|
||||||
$this->captchaSession = $captchaSession;
|
$this->captchaSession = $captchaSession;
|
||||||
$this->wp = $wp;
|
$this->wp = $wp;
|
||||||
$this->subscriberIPsRepository = $subscriberIPsRepository;
|
$this->subscriberIPsRepository = $subscriberIPsRepository;
|
||||||
|
$this->subscribersRepository = $subscribersRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function validate(array $data): bool {
|
public function validate(array $data): bool {
|
||||||
@ -100,10 +105,9 @@ class BuiltInCaptchaValidator implements CaptchaValidator {
|
|||||||
|
|
||||||
// Check limits per recipient if enabled
|
// Check limits per recipient if enabled
|
||||||
if ($subscriberEmail) {
|
if ($subscriberEmail) {
|
||||||
$subscriber = Subscriber::where('email', $subscriberEmail)->findOne();
|
$subscriber = $this->subscribersRepository->findOneBy(['email' => $subscriberEmail]);
|
||||||
if (
|
if (
|
||||||
$subscriber instanceof Subscriber
|
$subscriber && $subscriber->getConfirmationsCount() >= $subscriptionCaptchaRecipientLimit
|
||||||
&& $subscriber->countConfirmations >= $subscriptionCaptchaRecipientLimit
|
|
||||||
) {
|
) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ namespace MailPoet\Subscription\Captcha\Validator;
|
|||||||
|
|
||||||
use Codeception\Stub;
|
use Codeception\Stub;
|
||||||
use MailPoet\Subscribers\SubscriberIPsRepository;
|
use MailPoet\Subscribers\SubscriberIPsRepository;
|
||||||
|
use MailPoet\Subscribers\SubscribersRepository;
|
||||||
use MailPoet\Subscription\Captcha\CaptchaPhrase;
|
use MailPoet\Subscription\Captcha\CaptchaPhrase;
|
||||||
use MailPoet\Subscription\Captcha\CaptchaSession;
|
use MailPoet\Subscription\Captcha\CaptchaSession;
|
||||||
use MailPoet\Subscription\SubscriptionUrlFactory;
|
use MailPoet\Subscription\SubscriptionUrlFactory;
|
||||||
@ -43,12 +44,14 @@ class BuiltInCaptchaValidatorTest extends \MailPoetUnitTest
|
|||||||
$this
|
$this
|
||||||
);
|
);
|
||||||
$captchaSession = Stub::makeEmpty(CaptchaSession::class);
|
$captchaSession = Stub::makeEmpty(CaptchaSession::class);
|
||||||
$subscriberRepository = Stub::makeEmpty(SubscriberIPsRepository::class);
|
$subscriberIpRepository = Stub::makeEmpty(SubscriberIPsRepository::class);
|
||||||
|
$subscriberRepository = Stub::makeEmpty(SubscribersRepository::class);
|
||||||
$testee = new BuiltInCaptchaValidator(
|
$testee = new BuiltInCaptchaValidator(
|
||||||
$subscriptionUrlFactory,
|
$subscriptionUrlFactory,
|
||||||
$captchaPhrase,
|
$captchaPhrase,
|
||||||
$captchaSession,
|
$captchaSession,
|
||||||
$this->wp,
|
$this->wp,
|
||||||
|
$subscriberIpRepository,
|
||||||
$subscriberRepository
|
$subscriberRepository
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -74,12 +77,14 @@ class BuiltInCaptchaValidatorTest extends \MailPoetUnitTest
|
|||||||
);
|
);
|
||||||
$captchaSession = Stub::makeEmpty(CaptchaSession::class);
|
$captchaSession = Stub::makeEmpty(CaptchaSession::class);
|
||||||
|
|
||||||
$subscriberRepository = Stub::makeEmpty(SubscriberIPsRepository::class);
|
$subscriberIpRepository = Stub::makeEmpty(SubscriberIPsRepository::class);
|
||||||
|
$subscriberRepository = Stub::makeEmpty(SubscribersRepository::class);
|
||||||
$testee = new BuiltInCaptchaValidator(
|
$testee = new BuiltInCaptchaValidator(
|
||||||
$subscriptionUrlFactory,
|
$subscriptionUrlFactory,
|
||||||
$captchaPhrase,
|
$captchaPhrase,
|
||||||
$captchaSession,
|
$captchaSession,
|
||||||
$wp,
|
$wp,
|
||||||
|
$subscriberIpRepository,
|
||||||
$subscriberRepository
|
$subscriberRepository
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -171,12 +176,14 @@ class BuiltInCaptchaValidatorTest extends \MailPoetUnitTest
|
|||||||
],
|
],
|
||||||
$this
|
$this
|
||||||
);
|
);
|
||||||
$subscriberRepository = Stub::makeEmpty(SubscriberIPsRepository::class);
|
$subscriberIpRepository = Stub::makeEmpty(SubscriberIPsRepository::class);
|
||||||
|
$subscriberRepository = Stub::makeEmpty(SubscribersRepository::class);
|
||||||
$testee = new BuiltInCaptchaValidator(
|
$testee = new BuiltInCaptchaValidator(
|
||||||
$subscriptionUrlFactory,
|
$subscriptionUrlFactory,
|
||||||
$captchaPhrase,
|
$captchaPhrase,
|
||||||
$captchaSession,
|
$captchaSession,
|
||||||
$wp,
|
$wp,
|
||||||
|
$subscriberIpRepository,
|
||||||
$subscriberRepository
|
$subscriberRepository
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -206,12 +213,14 @@ class BuiltInCaptchaValidatorTest extends \MailPoetUnitTest
|
|||||||
$this
|
$this
|
||||||
);
|
);
|
||||||
$captchaSession = Stub::makeEmpty(CaptchaSession::class);
|
$captchaSession = Stub::makeEmpty(CaptchaSession::class);
|
||||||
$subscriberRepository = Stub::makeEmpty(SubscriberIPsRepository::class);
|
$subscriberIpRepository = Stub::makeEmpty(SubscriberIPsRepository::class);
|
||||||
|
$subscriberRepository = Stub::makeEmpty(SubscribersRepository::class);
|
||||||
$testee = new BuiltInCaptchaValidator(
|
$testee = new BuiltInCaptchaValidator(
|
||||||
$subscriptionUrlFactory,
|
$subscriptionUrlFactory,
|
||||||
$captchaPhrase,
|
$captchaPhrase,
|
||||||
$captchaSession,
|
$captchaSession,
|
||||||
$this->wp,
|
$this->wp,
|
||||||
|
$subscriberIpRepository,
|
||||||
$subscriberRepository
|
$subscriberRepository
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -241,12 +250,14 @@ class BuiltInCaptchaValidatorTest extends \MailPoetUnitTest
|
|||||||
$this
|
$this
|
||||||
);
|
);
|
||||||
$captchaSession = Stub::makeEmpty(CaptchaSession::class);
|
$captchaSession = Stub::makeEmpty(CaptchaSession::class);
|
||||||
$subscriberRepository = Stub::makeEmpty(SubscriberIPsRepository::class);
|
$subscriberIpRepository = Stub::makeEmpty(SubscriberIPsRepository::class);
|
||||||
|
$subscriberRepository = Stub::makeEmpty(SubscribersRepository::class);
|
||||||
$testee = new BuiltInCaptchaValidator(
|
$testee = new BuiltInCaptchaValidator(
|
||||||
$subscriptionUrlFactory,
|
$subscriptionUrlFactory,
|
||||||
$captchaPhrase,
|
$captchaPhrase,
|
||||||
$captchaSession,
|
$captchaSession,
|
||||||
$this->wp,
|
$this->wp,
|
||||||
|
$subscriberIpRepository,
|
||||||
$subscriberRepository
|
$subscriberRepository
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -282,12 +293,14 @@ class BuiltInCaptchaValidatorTest extends \MailPoetUnitTest
|
|||||||
$this
|
$this
|
||||||
);
|
);
|
||||||
$captchaSession = Stub::makeEmpty(CaptchaSession::class);
|
$captchaSession = Stub::makeEmpty(CaptchaSession::class);
|
||||||
$subscriberRepository = Stub::makeEmpty(SubscriberIPsRepository::class);
|
$subscriberIpRepository = Stub::makeEmpty(SubscriberIPsRepository::class);
|
||||||
|
$subscriberRepository = Stub::makeEmpty(SubscribersRepository::class);
|
||||||
$testee = new BuiltInCaptchaValidator(
|
$testee = new BuiltInCaptchaValidator(
|
||||||
$subscriptionUrlFactory,
|
$subscriptionUrlFactory,
|
||||||
$captchaPhrase,
|
$captchaPhrase,
|
||||||
$captchaSession,
|
$captchaSession,
|
||||||
$this->wp,
|
$this->wp,
|
||||||
|
$subscriberIpRepository,
|
||||||
$subscriberRepository
|
$subscriberRepository
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user