Add SubscriberLimit and InvalidApi key pages classes
[MAILPOET-2200]
This commit is contained in:
committed by
M. Shull
parent
8693efdea5
commit
cb1dd28ea9
23
lib/AdminPages/Pages/SubscribersAPIKeyInvalid.php
Normal file
23
lib/AdminPages/Pages/SubscribersAPIKeyInvalid.php
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace MailPoet\AdminPages\Pages;
|
||||||
|
|
||||||
|
use MailPoet\AdminPages\PageRenderer;
|
||||||
|
use MailPoet\Models\Subscriber;
|
||||||
|
|
||||||
|
if (!defined('ABSPATH')) exit;
|
||||||
|
|
||||||
|
class SubscribersAPIKeyInvalid {
|
||||||
|
/** @var PageRenderer */
|
||||||
|
private $page_renderer;
|
||||||
|
|
||||||
|
function __construct(PageRenderer $page_renderer) {
|
||||||
|
$this->page_renderer = $page_renderer;
|
||||||
|
}
|
||||||
|
|
||||||
|
function render() {
|
||||||
|
$this->page_renderer->displayPage('invalidkey.html', [
|
||||||
|
'subscriber_count' => Subscriber::getTotalSubscribers(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
23
lib/AdminPages/Pages/SubscribersLimitExceeded.php
Normal file
23
lib/AdminPages/Pages/SubscribersLimitExceeded.php
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace MailPoet\AdminPages\Pages;
|
||||||
|
|
||||||
|
use MailPoet\AdminPages\PageRenderer;
|
||||||
|
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
|
||||||
|
|
||||||
|
if (!defined('ABSPATH')) exit;
|
||||||
|
|
||||||
|
class SubscribersLimitExceeded {
|
||||||
|
/** @var PageRenderer */
|
||||||
|
private $page_renderer;
|
||||||
|
|
||||||
|
function __construct(PageRenderer $page_renderer) {
|
||||||
|
$this->page_renderer = $page_renderer;
|
||||||
|
}
|
||||||
|
|
||||||
|
function render() {
|
||||||
|
$this->page_renderer->displayPage('limit.html', [
|
||||||
|
'limit' => SubscribersFeature::SUBSCRIBERS_LIMIT,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace MailPoet\Config;
|
namespace MailPoet\Config;
|
||||||
|
|
||||||
use MailPoet\AdminPages\PageRenderer;
|
|
||||||
use MailPoet\AdminPages\Pages\ExperimentalFeatures;
|
use MailPoet\AdminPages\Pages\ExperimentalFeatures;
|
||||||
use MailPoet\AdminPages\Pages\FormEditor;
|
use MailPoet\AdminPages\Pages\FormEditor;
|
||||||
use MailPoet\AdminPages\Pages\Forms;
|
use MailPoet\AdminPages\Pages\Forms;
|
||||||
@ -15,13 +14,14 @@ use MailPoet\AdminPages\Pages\RevenueTrackingPermission;
|
|||||||
use MailPoet\AdminPages\Pages\Segments;
|
use MailPoet\AdminPages\Pages\Segments;
|
||||||
use MailPoet\AdminPages\Pages\Settings;
|
use MailPoet\AdminPages\Pages\Settings;
|
||||||
use MailPoet\AdminPages\Pages\Subscribers;
|
use MailPoet\AdminPages\Pages\Subscribers;
|
||||||
|
use MailPoet\AdminPages\Pages\SubscribersAPIKeyInvalid;
|
||||||
use MailPoet\AdminPages\Pages\SubscribersExport;
|
use MailPoet\AdminPages\Pages\SubscribersExport;
|
||||||
use MailPoet\AdminPages\Pages\SubscribersImport;
|
use MailPoet\AdminPages\Pages\SubscribersImport;
|
||||||
|
use MailPoet\AdminPages\Pages\SubscribersLimitExceeded;
|
||||||
use MailPoet\AdminPages\Pages\Update;
|
use MailPoet\AdminPages\Pages\Update;
|
||||||
use MailPoet\AdminPages\Pages\WelcomeWizard;
|
use MailPoet\AdminPages\Pages\WelcomeWizard;
|
||||||
use MailPoet\AdminPages\Pages\WooCommerceListImport;
|
use MailPoet\AdminPages\Pages\WooCommerceListImport;
|
||||||
use MailPoet\DI\ContainerWrapper;
|
use MailPoet\DI\ContainerWrapper;
|
||||||
use MailPoet\Models\Subscriber;
|
|
||||||
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
|
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
|
||||||
use MailPoet\Util\License\License;
|
use MailPoet\Util\License\License;
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
@ -42,9 +42,6 @@ class Menu {
|
|||||||
/** @var ServicesChecker */
|
/** @var ServicesChecker */
|
||||||
private $servicesChecker;
|
private $servicesChecker;
|
||||||
|
|
||||||
/** @var PageRenderer */
|
|
||||||
private $page_renderer;
|
|
||||||
|
|
||||||
/** @var ContainerWrapper */
|
/** @var ContainerWrapper */
|
||||||
private $container;
|
private $container;
|
||||||
|
|
||||||
@ -54,13 +51,11 @@ class Menu {
|
|||||||
AccessControl $access_control,
|
AccessControl $access_control,
|
||||||
WPFunctions $wp,
|
WPFunctions $wp,
|
||||||
ServicesChecker $servicesChecker,
|
ServicesChecker $servicesChecker,
|
||||||
PageRenderer $page_renderer,
|
|
||||||
ContainerWrapper $containerWrapper
|
ContainerWrapper $containerWrapper
|
||||||
) {
|
) {
|
||||||
$this->access_control = $access_control;
|
$this->access_control = $access_control;
|
||||||
$this->wp = $wp;
|
$this->wp = $wp;
|
||||||
$this->servicesChecker = $servicesChecker;
|
$this->servicesChecker = $servicesChecker;
|
||||||
$this->page_renderer = $page_renderer;
|
|
||||||
$this->container = $containerWrapper;
|
$this->container = $containerWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -439,14 +434,14 @@ class Menu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function forms() {
|
function forms() {
|
||||||
if ($this->subscribers_over_limit) return $this->displaySubscriberLimitExceededTemplate();
|
if ($this->subscribers_over_limit) return $this->displaySubscriberLimitExceeded();
|
||||||
$this->container->get(Forms::class)->render();
|
$this->container->get(Forms::class)->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
function newsletters() {
|
function newsletters() {
|
||||||
if ($this->subscribers_over_limit) return $this->displaySubscriberLimitExceededTemplate();
|
if ($this->subscribers_over_limit) return $this->displaySubscriberLimitExceeded();
|
||||||
if (isset($this->mp_api_key_valid) && $this->mp_api_key_valid === false) {
|
if (isset($this->mp_api_key_valid) && $this->mp_api_key_valid === false) {
|
||||||
return $this->displayMailPoetAPIKeyInvalidTemplate();
|
return $this->displayMailPoetAPIKeyInvalid();
|
||||||
}
|
}
|
||||||
$this->container->get(Newsletters::class)->render();
|
$this->container->get(Newsletters::class)->render();
|
||||||
}
|
}
|
||||||
@ -467,6 +462,16 @@ class Menu {
|
|||||||
$this->container->get(FormEditor::class)->render();
|
$this->container->get(FormEditor::class)->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function displaySubscriberLimitExceeded() {
|
||||||
|
$this->container->get(SubscribersLimitExceeded::class)->render();
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function displayMailPoetAPIKeyInvalid() {
|
||||||
|
$this->container->get(SubscribersAPIKeyInvalid::class)->render();
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
function setPageTitle($title) {
|
function setPageTitle($title) {
|
||||||
return sprintf(
|
return sprintf(
|
||||||
'%s - %s',
|
'%s - %s',
|
||||||
@ -475,20 +480,6 @@ class Menu {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function displaySubscriberLimitExceededTemplate() {
|
|
||||||
$this->page_renderer->displayPage('limit.html', [
|
|
||||||
'limit' => SubscribersFeature::SUBSCRIBERS_LIMIT,
|
|
||||||
]);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
function displayMailPoetAPIKeyInvalidTemplate() {
|
|
||||||
$this->page_renderer->displayPage('invalidkey.html', [
|
|
||||||
'subscriber_count' => Subscriber::getTotalSubscribers(),
|
|
||||||
]);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
static function isOnMailPoetAdminPage(array $exclude = null, $screen_id = null) {
|
static function isOnMailPoetAdminPage(array $exclude = null, $screen_id = null) {
|
||||||
if (is_null($screen_id)) {
|
if (is_null($screen_id)) {
|
||||||
if (empty($_REQUEST['page'])) {
|
if (empty($_REQUEST['page'])) {
|
||||||
|
@ -42,8 +42,10 @@ class ContainerConfigurator implements IContainerConfigurator {
|
|||||||
$container->autowire(\MailPoet\AdminPages\Pages\Segments::class);
|
$container->autowire(\MailPoet\AdminPages\Pages\Segments::class);
|
||||||
$container->autowire(\MailPoet\AdminPages\Pages\Settings::class);
|
$container->autowire(\MailPoet\AdminPages\Pages\Settings::class);
|
||||||
$container->autowire(\MailPoet\AdminPages\Pages\Subscribers::class);
|
$container->autowire(\MailPoet\AdminPages\Pages\Subscribers::class);
|
||||||
|
$container->autowire(\MailPoet\AdminPages\Pages\SubscribersAPIKeyInvalid::class);
|
||||||
$container->autowire(\MailPoet\AdminPages\Pages\SubscribersExport::class);
|
$container->autowire(\MailPoet\AdminPages\Pages\SubscribersExport::class);
|
||||||
$container->autowire(\MailPoet\AdminPages\Pages\SubscribersImport::class);
|
$container->autowire(\MailPoet\AdminPages\Pages\SubscribersImport::class);
|
||||||
|
$container->autowire(\MailPoet\AdminPages\Pages\SubscribersLimitExceeded::class);
|
||||||
$container->autowire(\MailPoet\AdminPages\Pages\Update::class);
|
$container->autowire(\MailPoet\AdminPages\Pages\Update::class);
|
||||||
$container->autowire(\MailPoet\AdminPages\Pages\WelcomeWizard::class);
|
$container->autowire(\MailPoet\AdminPages\Pages\WelcomeWizard::class);
|
||||||
$container->autowire(\MailPoet\AdminPages\Pages\WooCommerceListImport::class);
|
$container->autowire(\MailPoet\AdminPages\Pages\WooCommerceListImport::class);
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
namespace MailPoet\Test\Config;
|
namespace MailPoet\Test\Config;
|
||||||
|
|
||||||
use Codeception\Util\Stub;
|
use Codeception\Util\Stub;
|
||||||
use MailPoet\AdminPages\PageRenderer;
|
|
||||||
use MailPoet\Config\AccessControl;
|
use MailPoet\Config\AccessControl;
|
||||||
use MailPoet\Config\Menu;
|
use MailPoet\Config\Menu;
|
||||||
use MailPoet\Config\ServicesChecker;
|
use MailPoet\Config\ServicesChecker;
|
||||||
@ -41,8 +40,7 @@ class MenuTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function testItChecksMailpoetAPIKey() {
|
function testItChecksMailpoetAPIKey() {
|
||||||
$renderer = Stub::make(PageRenderer::class);
|
$menu = $this->getMenu();
|
||||||
$menu = $this->getMenu($renderer);
|
|
||||||
|
|
||||||
$_REQUEST['page'] = 'mailpoet-newsletters';
|
$_REQUEST['page'] = 'mailpoet-newsletters';
|
||||||
$checker = Stub::make(
|
$checker = Stub::make(
|
||||||
@ -63,8 +61,7 @@ class MenuTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function testItChecksPremiumKey() {
|
function testItChecksPremiumKey() {
|
||||||
$renderer = Stub::make(PageRenderer::class);
|
$menu = $this->getMenu();
|
||||||
$menu = $this->getMenu($renderer);
|
|
||||||
|
|
||||||
$_REQUEST['page'] = 'mailpoet-newsletters';
|
$_REQUEST['page'] = 'mailpoet-newsletters';
|
||||||
$checker = Stub::make(
|
$checker = Stub::make(
|
||||||
@ -84,13 +81,12 @@ class MenuTest extends \MailPoetTest {
|
|||||||
expect($menu->premium_key_valid)->false();
|
expect($menu->premium_key_valid)->false();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getMenu(PageRenderer $renderer) {
|
private function getMenu() {
|
||||||
$wp = new WPFunctions;
|
$wp = new WPFunctions;
|
||||||
return new Menu(
|
return new Menu(
|
||||||
new AccessControl(),
|
new AccessControl(),
|
||||||
$wp,
|
$wp,
|
||||||
new ServicesChecker,
|
new ServicesChecker,
|
||||||
$renderer,
|
|
||||||
ContainerWrapper::getInstance()
|
ContainerWrapper::getInstance()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user