Fix minor PR remarks [MAILPOET-2015]

Reuse updateCaptcha() function
Inject Captcha class using DI
Add no-cache headers to captcha image
Fix an error when accessing the captcha page directly
Edit the line in settings regarding missing dependencies
This commit is contained in:
wxa
2019-07-11 13:42:47 +03:00
committed by M. Shull
parent 0b8dbf1d27
commit 7788aebe83
12 changed files with 54 additions and 22 deletions

View File

@@ -10,6 +10,7 @@ use MailPoet\Models\Subscriber;
use MailPoet\Models\SubscriberCustomField;
use MailPoet\Models\SubscriberSegment;
use MailPoet\Settings\SettingsController;
use MailPoet\Subscription\Captcha;
use MailPoet\Util\Notices\AfterMigrationNotice;
use MailPoet\Util\ProgressBar;
use MailPoet\WP\Functions as WPFunctions;
@@ -217,7 +218,8 @@ class MP2Migrator {
*/
private function eraseMP3Data() {
$settings = new SettingsController();
$activator = new Activator($settings, new Populator($settings, WPFunctions::get()));
$captcha = new Captcha();
$activator = new Activator($settings, new Populator($settings, WPFunctions::get(), $captcha));
$activator->deactivate();
$activator->activate();

View File

@@ -38,11 +38,18 @@ class Populator {
private $settings;
/** @var WPFunctions */
private $wp;
/** @var Captcha */
private $captcha;
const TEMPLATES_NAMESPACE = '\MailPoet\Config\PopulatorData\Templates\\';
function __construct(SettingsController $settings, WPFunctions $wp) {
function __construct(
SettingsController $settings,
WPFunctions $wp,
Captcha $captcha
) {
$this->settings = $settings;
$this->wp = $wp;
$this->captcha = $captcha;
$this->prefix = Env::$db_prefix;
$this->models = [
'newsletter_option_fields',
@@ -226,11 +233,10 @@ class Populator {
$captcha = $this->settings->fetch('captcha');
$re_captcha = $this->settings->fetch('re_captcha');
if (empty($captcha)) {
$subscription_captcha = new Captcha;
$captcha_type = Captcha::TYPE_DISABLED;
if (!empty($re_captcha['enabled'])) {
$captcha_type = Captcha::TYPE_RECAPTCHA;
} elseif ($subscription_captcha->isSupported()) {
} elseif ($this->captcha->isSupported()) {
$captcha_type = Captcha::TYPE_BUILTIN;
}
$this->settings->set('captcha', [