Add temporary fix to ensure old duplicated newsletters have hashes
[MAILPOET-3275]
This commit is contained in:
committed by
Veljko V
parent
e22c192078
commit
eb13116d2a
@ -25,6 +25,7 @@ use MailPoet\Newsletter\Url as NewsletterUrl;
|
|||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
use MailPoet\UnexpectedValueException;
|
use MailPoet\UnexpectedValueException;
|
||||||
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
|
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
|
||||||
|
use MailPoet\Util\Security;
|
||||||
use MailPoet\WP\Emoji;
|
use MailPoet\WP\Emoji;
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
use MailPoetVendor\Carbon\Carbon;
|
use MailPoetVendor\Carbon\Carbon;
|
||||||
@ -320,6 +321,7 @@ class Newsletters extends APIEndpoint {
|
|||||||
$filters = $this->newsletterListingRepository->getFilters($definition);
|
$filters = $this->newsletterListingRepository->getFilters($definition);
|
||||||
$groups = $this->newsletterListingRepository->getGroups($definition);
|
$groups = $this->newsletterListingRepository->getGroups($definition);
|
||||||
|
|
||||||
|
$this->fixMissingHash($items); // Fix for MAILPOET-3275. Remove after May 2021
|
||||||
$data = [];
|
$data = [];
|
||||||
foreach ($this->newslettersResponseBuilder->buildForListing($items) as $newsletterData) {
|
foreach ($this->newslettersResponseBuilder->buildForListing($items) as $newsletterData) {
|
||||||
$data[] = $this->wp->applyFilters('mailpoet_api_newsletters_listing_item', $newsletterData);
|
$data[] = $this->wp->applyFilters('mailpoet_api_newsletters_listing_item', $newsletterData);
|
||||||
@ -372,6 +374,7 @@ class Newsletters extends APIEndpoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function getViewInBrowserUrl(NewsletterEntity $newsletter): string {
|
private function getViewInBrowserUrl(NewsletterEntity $newsletter): string {
|
||||||
|
$this->fixMissingHash([$newsletter]); // Fix for MAILPOET-3275. Remove after May 2021
|
||||||
$url = NewsletterUrl::getViewInBrowserUrl(
|
$url = NewsletterUrl::getViewInBrowserUrl(
|
||||||
(object)[
|
(object)[
|
||||||
'id' => $newsletter->getId(),
|
'id' => $newsletter->getId(),
|
||||||
@ -382,4 +385,19 @@ class Newsletters extends APIEndpoint {
|
|||||||
// strip protocol to avoid mix content error
|
// strip protocol to avoid mix content error
|
||||||
return preg_replace('/^https?:/i', '', $url);
|
return preg_replace('/^https?:/i', '', $url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Some Newsletters were created without a hash due to a bug MAILPOET-3275
|
||||||
|
* We can remove this fix after May 2021 since by then most users should have their data fixed
|
||||||
|
* @param NewsletterEntity[] $newsletters
|
||||||
|
*/
|
||||||
|
private function fixMissingHash(array $newsletters) {
|
||||||
|
foreach ($newsletters as $newsletter) {
|
||||||
|
if (!$newsletter instanceof NewsletterEntity || $newsletter->getHash() !== null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$newsletter->setHash(Security::generateHash());
|
||||||
|
$this->newslettersRepository->flush();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user