diff --git a/lib/Newsletter/ViewInBrowser/ViewInBrowserController.php b/lib/Newsletter/ViewInBrowser/ViewInBrowserController.php index 5aec0d8af8..91d21200e2 100644 --- a/lib/Newsletter/ViewInBrowser/ViewInBrowserController.php +++ b/lib/Newsletter/ViewInBrowser/ViewInBrowserController.php @@ -2,7 +2,6 @@ namespace MailPoet\Newsletter\ViewInBrowser; -use MailPoet\Config\AccessControl; use MailPoet\Models\Newsletter; use MailPoet\Models\SendingQueue; use MailPoet\Models\Subscriber; @@ -10,9 +9,6 @@ use MailPoet\Newsletter\Url as NewsletterUrl; use MailPoet\Subscribers\LinkTokens; class ViewInBrowserController { - /** @var AccessControl */ - private $accessControl; - /** @var LinkTokens */ private $linkTokens; @@ -20,11 +16,9 @@ class ViewInBrowserController { private $viewInBrowserRenderer; public function __construct( - AccessControl $accessControl, LinkTokens $linkTokens, ViewInBrowserRenderer $viewInBrowserRenderer ) { - $this->accessControl = $accessControl; $this->linkTokens = $linkTokens; $this->viewInBrowserRenderer = $viewInBrowserRenderer; } @@ -41,12 +35,9 @@ class ViewInBrowserController { $subscriber = Subscriber::getCurrentWPUser() ?: null; } - // allow users with permission to manage emails to preview any newsletter - $canView = $isPreview && $this->accessControl->validatePermission(AccessControl::PERMISSION_MANAGE_EMAILS); - // if queue and subscriber exist, subscriber must have received the newsletter $queue = $this->getQueue($newsletter, $data); - if (!$canView && $queue && $subscriber && !$queue->isSubscriberProcessed($subscriber->id)) { + if (!$isPreview && $queue && $subscriber && !$queue->isSubscriberProcessed($subscriber->id)) { throw new \InvalidArgumentException("Subscriber did not receive the newsletter yet"); } diff --git a/tests/integration/Newsletter/ViewInBrowser/ViewInBrowserControllerTest.php b/tests/integration/Newsletter/ViewInBrowser/ViewInBrowserControllerTest.php index 0e60c4caeb..86a545eeb4 100644 --- a/tests/integration/Newsletter/ViewInBrowser/ViewInBrowserControllerTest.php +++ b/tests/integration/Newsletter/ViewInBrowser/ViewInBrowserControllerTest.php @@ -3,7 +3,6 @@ namespace MailPoet\Newsletter\ViewInBrowser; use Codeception\Stub\Expected; -use MailPoet\Config\AccessControl; use MailPoet\Models\Newsletter; use MailPoet\Models\ScheduledTask; use MailPoet\Models\SendingQueue; @@ -106,28 +105,6 @@ class ViewInBrowserControllerTest extends \MailPoetTest { $this->expectViewThrowsExceptionWithMessage($this->viewInBrowserController, $data, 'Subscriber did not receive the newsletter yet'); } - public function testItDoesNotRequireWpAdministratorToBeOnProcessedListWhenPreviewIsEnabled() { - $data = $this->browserPreviewData; - $data['preview'] = true; - - $sendingTask = $this->sendingTask; - $sendingTask->setSubscribers([]); - $sendingTask->updateProcessedSubscribers([]); - $sendingTask->save(); - - // when WP user is not logged, it should throw - $this->expectViewThrowsExceptionWithMessage($this->viewInBrowserController, $data, "Subscriber did not receive the newsletter yet"); - - // when WP user does not have 'manage options' permission, it should throw - $wpUser = wp_set_current_user(0); - $wpUser->remove_role('administrator'); - $this->expectViewThrowsExceptionWithMessage($this->viewInBrowserController, $data, "Subscriber did not receive the newsletter yet"); - - // when WP has 'manage options' permission, it should not throw - $wpUser->add_role('administrator'); - $this->viewInBrowserController->view($data); - } - public function testItSetsSubscriberToLoggedInWPUserWhenPreviewIsEnabled() { $viewInBrowserRenderer = $this->make(ViewInBrowserRenderer::class, [ 'render' => Expected::once(function (bool $isPreview, Newsletter $newsletter, Subscriber $subscriber = null, SendingQueue $queue = null) { @@ -138,7 +115,6 @@ class ViewInBrowserControllerTest extends \MailPoetTest { ]); $viewInBrowserController = new ViewInBrowserController( - $this->diContainer->get(AccessControl::class), $this->diContainer->get(LinkTokens::class), $viewInBrowserRenderer ); @@ -163,7 +139,6 @@ class ViewInBrowserControllerTest extends \MailPoetTest { ]); $viewInBrowserController = new ViewInBrowserController( - $this->diContainer->get(AccessControl::class), $this->diContainer->get(LinkTokens::class), $viewInBrowserRenderer ); @@ -183,7 +158,6 @@ class ViewInBrowserControllerTest extends \MailPoetTest { ]); $viewInBrowserController = new ViewInBrowserController( - $this->diContainer->get(AccessControl::class), $this->diContainer->get(LinkTokens::class), $viewInBrowserRenderer ); @@ -201,7 +175,6 @@ class ViewInBrowserControllerTest extends \MailPoetTest { ]); $viewInBrowserController = new ViewInBrowserController( - $this->diContainer->get(AccessControl::class), $this->diContainer->get(LinkTokens::class), $viewInBrowserRenderer ); @@ -221,7 +194,6 @@ class ViewInBrowserControllerTest extends \MailPoetTest { ]); $viewInBrowserController = new ViewInBrowserController( - $this->diContainer->get(AccessControl::class), $this->diContainer->get(LinkTokens::class), $viewInBrowserRenderer );