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\UnexpectedValueException;
|
||||
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
|
||||
use MailPoet\Util\Security;
|
||||
use MailPoet\WP\Emoji;
|
||||
use MailPoet\WP\Functions as WPFunctions;
|
||||
use MailPoetVendor\Carbon\Carbon;
|
||||
@ -320,6 +321,7 @@ class Newsletters extends APIEndpoint {
|
||||
$filters = $this->newsletterListingRepository->getFilters($definition);
|
||||
$groups = $this->newsletterListingRepository->getGroups($definition);
|
||||
|
||||
$this->fixMissingHash($items); // Fix for MAILPOET-3275. Remove after May 2021
|
||||
$data = [];
|
||||
foreach ($this->newslettersResponseBuilder->buildForListing($items) as $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 {
|
||||
$this->fixMissingHash([$newsletter]); // Fix for MAILPOET-3275. Remove after May 2021
|
||||
$url = NewsletterUrl::getViewInBrowserUrl(
|
||||
(object)[
|
||||
'id' => $newsletter->getId(),
|
||||
@ -382,4 +385,19 @@ class Newsletters extends APIEndpoint {
|
||||
// strip protocol to avoid mix content error
|
||||
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