OwlCyberSecurity - MANAGER
Edit File: SendingServiceKeyCheck.php
<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing namespace MailPoet\Cron\Workers\KeyCheck; if (!defined('ABSPATH')) exit; use MailPoet\Config\ServicesChecker; use MailPoet\Cron\CronWorkerScheduler; use MailPoet\InvalidStateException; use MailPoet\Mailer\Mailer; use MailPoet\Mailer\MailerLog; use MailPoet\Services\Bridge; use MailPoet\Settings\SettingsController; use MailPoetVendor\Carbon\Carbon; class SendingServiceKeyCheck extends KeyCheckWorker { const TASK_TYPE = 'sending_service_key_check'; /** @var SettingsController */ private $settings; /** @var ServicesChecker */ private $servicesChecker; public function __construct( SettingsController $settings, ServicesChecker $servicesChecker, CronWorkerScheduler $cronWorkerScheduler ) { $this->settings = $settings; $this->servicesChecker = $servicesChecker; parent::__construct($cronWorkerScheduler); } public function checkProcessingRequirements() { return Bridge::isMPSendingServiceEnabled(); } /** * @return \DateTimeInterface|Carbon */ public function getNextRunDate() { // when key pending approval, check key sate every hour if ($this->servicesChecker->isMailPoetAPIKeyPendingApproval()) { $date = Carbon::now()->millisecond(0); return $date->addHour(); } return parent::getNextRunDate(); } public function checkKey() { // for phpstan because we set bridge property in the init function if (!$this->bridge) { throw new InvalidStateException('The class was not initialized properly. Please call the Init method before.'); }; $wasPendingApproval = $this->servicesChecker->isMailPoetAPIKeyPendingApproval(); $mssKey = $this->settings->get(Mailer::MAILER_CONFIG_SETTING_NAME)['mailpoet_api_key']; $result = $this->bridge->checkMSSKey($mssKey); $this->bridge->storeMSSKeyAndState($mssKey, $result); $isPendingApproval = $this->servicesChecker->isMailPoetAPIKeyPendingApproval(); if ($wasPendingApproval && !$isPendingApproval) { MailerLog::resumeSending(); } return $result; } }