Only do validation if MSS is active

[MAILPOET-3857]
This commit is contained in:
Pavel Dohnal
2021-10-19 13:04:27 +02:00
committed by Veljko V
parent 813d43f857
commit 0d70174737
3 changed files with 24 additions and 6 deletions

View File

@ -40,9 +40,11 @@ function validateNewsletter(newsletter) {
return MailPoet.I18n.t('newsletterIsEmpty');
}
}
// todo only check this if MSS is active
if (body.indexOf('[link:subscription_unsubscribe_url]') < 0
&& body.indexOf('[link:subscription_unsubscribe]') < 0
if (
window.mailpoet_mss_active
&& (body.indexOf('[link:subscription_unsubscribe_url]') < 0)
&& (body.indexOf('[link:subscription_unsubscribe]') < 0)
) {
return MailPoet.I18n.t('unsubscribeLinkMissing');
}

View File

@ -13,6 +13,7 @@ use MailPoet\Models\SendingQueue as SendingQueueModel;
use MailPoet\Newsletter\NewslettersRepository;
use MailPoet\Newsletter\Scheduler\Scheduler;
use MailPoet\Segments\SubscribersFinder;
use MailPoet\Services\Bridge;
use MailPoet\Tasks\Sending as SendingTask;
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
@ -30,14 +31,19 @@ class SendingQueue extends APIEndpoint {
/** @var NewslettersRepository */
private $newsletterRepository;
/** @var Bridge */
private $bridge;
public function __construct(
SubscribersFeature $subscribersFeature,
NewslettersRepository $newsletterRepository,
Bridge $bridge,
SubscribersFinder $subscribersFinder
) {
$this->subscribersFeature = $subscribersFeature;
$this->subscribersFinder = $subscribersFinder;
$this->newsletterRepository = $newsletterRepository;
$this->bridge = $bridge;
}
public function add($data = []) {
@ -153,8 +159,9 @@ class SendingQueue extends APIEndpoint {
return __('Poet, please add prose to your masterpiece before you send it to your followers.');
}
// todo only check this if MSS is active
if ((strpos($body, '[link:subscription_unsubscribe_url]') === false)
if (
$this->bridge->isMailpoetSendingServiceEnabled()
&& (strpos($body, '[link:subscription_unsubscribe_url]') === false)
&& (strpos($body, '[link:subscription_unsubscribe]') === false)
) {
return __('All emails must include an "Unsubscribe" link. Add a footer widget to your email to continue.');

View File

@ -14,6 +14,7 @@ use MailPoet\Models\ScheduledTask;
use MailPoet\Models\SendingQueue as SendingQueueModel;
use MailPoet\Newsletter\NewslettersRepository;
use MailPoet\Segments\SubscribersFinder;
use MailPoet\Services\Bridge;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
use MailPoet\Tasks\Sending;
@ -68,6 +69,7 @@ class SendingQueueTest extends \MailPoetTest {
'check' => true,
]),
$this->diContainer->get(NewslettersRepository::class),
$this->diContainer->get(Bridge::class),
$this->diContainer->get(SubscribersFinder::class)
);
$res = $sendingQueue->add(['newsletter_id' => $this->newsletter->id]);
@ -122,7 +124,14 @@ class SendingQueueTest extends \MailPoetTest {
$newsletter->setBody(['content' => ['type' => 'container', 'columnLayout' => false, 'orientation' => 'vertical']]);
$this->entityManager->persist($newsletter);
$this->entityManager->flush();
$sendingQueue = $this->diContainer->get(SendingQueueAPI::class);
$sendingQueue = new SendingQueueAPI(
$this->diContainer->get(SubscribersFeature::class),
$this->diContainer->get(NewslettersRepository::class),
Stub::make(Bridge::class, [
'isMailpoetSendingServiceEnabled' => true,
]),
$this->diContainer->get(SubscribersFinder::class)
);
$response = $sendingQueue->add(['newsletter_id' => $newsletter->getId()]);
$response = $response->getData();
expect($response['errors'][0])->array();