From 7f261a218a0717ff38d0c9551b7568c4021b6a1d Mon Sep 17 00:00:00 2001 From: James Brooks Date: Wed, 20 Jul 2016 16:00:27 +0100 Subject: [PATCH 1/5] Added option to skip subscriber verification. Closes #1990 --- ...SendSubscriberVerificationEmailHandler.php | 25 ++++++++++++++++--- config/setting.php | 11 ++++++++ resources/lang/en/forms.php | 1 + .../dashboard/settings/app-setup.blade.php | 11 ++++++++ 4 files changed, 44 insertions(+), 4 deletions(-) diff --git a/app/Bus/Handlers/Events/Subscriber/SendSubscriberVerificationEmailHandler.php b/app/Bus/Handlers/Events/Subscriber/SendSubscriberVerificationEmailHandler.php index 2ff98f02b0b1..b225c679cd13 100644 --- a/app/Bus/Handlers/Events/Subscriber/SendSubscriberVerificationEmailHandler.php +++ b/app/Bus/Handlers/Events/Subscriber/SendSubscriberVerificationEmailHandler.php @@ -11,7 +11,9 @@ namespace CachetHQ\Cachet\Bus\Handlers\Events\Subscriber; +use CachetHQ\Cachet\Bus\Commands\Subscriber\VerifySubscriberCommand; use CachetHQ\Cachet\Bus\Events\Subscriber\SubscriberHasSubscribedEvent; +use Illuminate\Contracts\Config\Repository; use Illuminate\Contracts\Mail\MailQueue; use Illuminate\Mail\Message; @@ -24,6 +26,13 @@ class SendSubscriberVerificationEmailHandler */ protected $mailer; + /** + * The illuminate config instance. + * + * @var \Illuminate\Contracts\Config\Repository + */ + protected $config; + /** * Create a new send subscriber verification email handler. * @@ -31,9 +40,10 @@ class SendSubscriberVerificationEmailHandler * * @return void */ - public function __construct(MailQueue $mailer) + public function __construct(MailQueue $mailer, Repository $config) { $this->mailer = $mailer; + $this->config = $config; } /** @@ -45,10 +55,17 @@ public function __construct(MailQueue $mailer) */ public function handle(SubscriberHasSubscribedEvent $event) { + // If we've enabled verification skipping, then just verify the subscriber right now. + if ($this->config->get('setting.skip_subscriber_verification')) { + dispatch(new VerifySubscriberCommand($event->subscriber)); + + return; + } + $mail = [ - 'email' => $event->subscriber->email, - 'subject' => 'Confirm your subscription.', - 'link' => route('subscribe.verify', ['code' => $event->subscriber->verify_code]), + 'email' => $event->subscriber->email, + 'subject' => 'Confirm your subscription.', + 'link' => route('subscribe.verify', ['code' => $event->subscriber->verify_code]), ]; $this->mailer->queue([ diff --git a/config/setting.php b/config/setting.php index 55fd970e756a..c17a6dee8135 100644 --- a/config/setting.php +++ b/config/setting.php @@ -77,4 +77,15 @@ */ 'show_timezone' => false, + + /* + |-------------------------------------------------------------------------- + | Skip subscriber verifications + |-------------------------------------------------------------------------- + | + | Whether to allow skipping of subscriber verifications. + | + */ + + 'skip_subscriber_verification' => false, ]; diff --git a/resources/lang/en/forms.php b/resources/lang/en/forms.php index 77c2afd80bdb..d6366b39ebfc 100644 --- a/resources/lang/en/forms.php +++ b/resources/lang/en/forms.php @@ -109,6 +109,7 @@ 'banner' => 'Banner Image', 'banner-help' => "It's recommended that you upload files no bigger than 930px wide .", 'subscribers' => 'Allow people to signup to email notifications?', + 'skip_subscriber_verification' => 'Skip verifying of users? (Be warned, you could be spammed)', 'automatic_localization' => 'Automatically localise your status page to your visitor\'s language?', 'enable_external_dependencies' => 'Enable Third Party Dependencies (Google Fonts, Trackers, etc...)', 'show_timezone' => 'Show the timezone the status page is running in.', diff --git a/resources/views/dashboard/settings/app-setup.blade.php b/resources/views/dashboard/settings/app-setup.blade.php index 7c9d4fb143a0..9a54c7ea101d 100644 --- a/resources/views/dashboard/settings/app-setup.blade.php +++ b/resources/views/dashboard/settings/app-setup.blade.php @@ -62,6 +62,17 @@ +
+
+
+ +
+
+
From 9120dba237ee2c37d94d742c2ad5db8e1c070a65 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Wed, 20 Jul 2016 19:52:23 +0100 Subject: [PATCH 2/5] Fixed verification skipping --- .../SendSubscriberVerificationEmailHandler.php | 12 +----------- app/Http/Controllers/Api/SubscriberController.php | 9 ++++----- .../Controllers/Dashboard/SubscriberController.php | 5 ++++- app/Http/Controllers/SubscribeController.php | 4 ++-- 4 files changed, 11 insertions(+), 19 deletions(-) diff --git a/app/Bus/Handlers/Events/Subscriber/SendSubscriberVerificationEmailHandler.php b/app/Bus/Handlers/Events/Subscriber/SendSubscriberVerificationEmailHandler.php index b225c679cd13..e0650c060e44 100644 --- a/app/Bus/Handlers/Events/Subscriber/SendSubscriberVerificationEmailHandler.php +++ b/app/Bus/Handlers/Events/Subscriber/SendSubscriberVerificationEmailHandler.php @@ -11,9 +11,7 @@ namespace CachetHQ\Cachet\Bus\Handlers\Events\Subscriber; -use CachetHQ\Cachet\Bus\Commands\Subscriber\VerifySubscriberCommand; use CachetHQ\Cachet\Bus\Events\Subscriber\SubscriberHasSubscribedEvent; -use Illuminate\Contracts\Config\Repository; use Illuminate\Contracts\Mail\MailQueue; use Illuminate\Mail\Message; @@ -40,10 +38,9 @@ class SendSubscriberVerificationEmailHandler * * @return void */ - public function __construct(MailQueue $mailer, Repository $config) + public function __construct(MailQueue $mailer) { $this->mailer = $mailer; - $this->config = $config; } /** @@ -55,13 +52,6 @@ public function __construct(MailQueue $mailer, Repository $config) */ public function handle(SubscriberHasSubscribedEvent $event) { - // If we've enabled verification skipping, then just verify the subscriber right now. - if ($this->config->get('setting.skip_subscriber_verification')) { - dispatch(new VerifySubscriberCommand($event->subscriber)); - - return; - } - $mail = [ 'email' => $event->subscriber->email, 'subject' => 'Confirm your subscription.', diff --git a/app/Http/Controllers/Api/SubscriberController.php b/app/Http/Controllers/Api/SubscriberController.php index 42eeec094eb8..15661e331ac3 100644 --- a/app/Http/Controllers/Api/SubscriberController.php +++ b/app/Http/Controllers/Api/SubscriberController.php @@ -14,6 +14,7 @@ use CachetHQ\Cachet\Bus\Commands\Subscriber\SubscribeSubscriberCommand; use CachetHQ\Cachet\Bus\Commands\Subscriber\UnsubscribeSubscriberCommand; use CachetHQ\Cachet\Bus\Commands\Subscriber\UnsubscribeSubscriptionCommand; +use Illuminate\Contracts\Config\Repository; use CachetHQ\Cachet\Models\Subscriber; use CachetHQ\Cachet\Models\Subscription; use GrahamCampbell\Binput\Facades\Binput; @@ -48,12 +49,10 @@ public function getSubscribers() */ public function postSubscribers() { + $verified = Binput::get('verify', app(Repository::class)->get('setting.skip_subscriber_verification'))); + try { - $subscriber = dispatch(new SubscribeSubscriberCommand( - Binput::get('email'), - Binput::get('verify', false), - Binput::get('components', null) - )); + $subscriber = dispatch(new SubscribeSubscriberCommand(Binput::get('email'), $verified, Binput::get('components'))); } catch (QueryException $e) { throw new BadRequestHttpException(); } diff --git a/app/Http/Controllers/Dashboard/SubscriberController.php b/app/Http/Controllers/Dashboard/SubscriberController.php index a62cd0b82367..cac1ceb2aba4 100644 --- a/app/Http/Controllers/Dashboard/SubscriberController.php +++ b/app/Http/Controllers/Dashboard/SubscriberController.php @@ -14,6 +14,7 @@ use AltThree\Validator\ValidationException; use CachetHQ\Cachet\Bus\Commands\Subscriber\SubscribeSubscriberCommand; use CachetHQ\Cachet\Bus\Commands\Subscriber\UnsubscribeSubscriberCommand; +use Illuminate\Contracts\Config\Repository; use CachetHQ\Cachet\Models\Subscriber; use GrahamCampbell\Binput\Facades\Binput; use Illuminate\Routing\Controller; @@ -52,11 +53,13 @@ public function showAddSubscriber() */ public function createSubscriberAction() { + $verified = app(Repository::class)->get('setting.skip_subscriber_verification')); + try { $subscribers = preg_split("/\r\n|\n|\r/", Binput::get('email')); foreach ($subscribers as $subscriber) { - dispatch(new SubscribeSubscriberCommand($subscriber)); + dispatch(new SubscribeSubscriberCommand($subscriber, $verified)); } } catch (ValidationException $e) { return Redirect::route('dashboard.subscribers.add') diff --git a/app/Http/Controllers/SubscribeController.php b/app/Http/Controllers/SubscribeController.php index 14911a9215dc..da67f8e16a2e 100644 --- a/app/Http/Controllers/SubscribeController.php +++ b/app/Http/Controllers/SubscribeController.php @@ -23,6 +23,7 @@ use CachetHQ\Cachet\Models\Subscription; use GrahamCampbell\Binput\Facades\Binput; use GrahamCampbell\Markdown\Facades\Markdown; +use Illuminate\Contracts\Config\Repository; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Redirect; @@ -57,10 +58,9 @@ public function postSubscribe() { $email = Binput::get('email'); $subscriptions = Binput::get('subscriptions'); + $verified = app(Repository::class)->get('setting.skip_subscriber_verification')); try { - $verified = false; - $subscription = dispatch(new SubscribeSubscriberCommand($email, $verified)); } catch (ValidationException $e) { return Redirect::route('status-page') From 1e24138d7a64703a17d07f26bb5f2aeee55d3f72 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Wed, 20 Jul 2016 19:54:48 +0100 Subject: [PATCH 3/5] Removed extra brackets --- app/Http/Controllers/Api/SubscriberController.php | 2 +- app/Http/Controllers/Dashboard/SubscriberController.php | 2 +- app/Http/Controllers/SubscribeController.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Api/SubscriberController.php b/app/Http/Controllers/Api/SubscriberController.php index 15661e331ac3..b82a0c7ee8da 100644 --- a/app/Http/Controllers/Api/SubscriberController.php +++ b/app/Http/Controllers/Api/SubscriberController.php @@ -49,7 +49,7 @@ public function getSubscribers() */ public function postSubscribers() { - $verified = Binput::get('verify', app(Repository::class)->get('setting.skip_subscriber_verification'))); + $verified = Binput::get('verify', app(Repository::class)->get('setting.skip_subscriber_verification')); try { $subscriber = dispatch(new SubscribeSubscriberCommand(Binput::get('email'), $verified, Binput::get('components'))); diff --git a/app/Http/Controllers/Dashboard/SubscriberController.php b/app/Http/Controllers/Dashboard/SubscriberController.php index cac1ceb2aba4..6fb39626f61f 100644 --- a/app/Http/Controllers/Dashboard/SubscriberController.php +++ b/app/Http/Controllers/Dashboard/SubscriberController.php @@ -53,7 +53,7 @@ public function showAddSubscriber() */ public function createSubscriberAction() { - $verified = app(Repository::class)->get('setting.skip_subscriber_verification')); + $verified = app(Repository::class)->get('setting.skip_subscriber_verification'); try { $subscribers = preg_split("/\r\n|\n|\r/", Binput::get('email')); diff --git a/app/Http/Controllers/SubscribeController.php b/app/Http/Controllers/SubscribeController.php index da67f8e16a2e..f2ce15cadf1e 100644 --- a/app/Http/Controllers/SubscribeController.php +++ b/app/Http/Controllers/SubscribeController.php @@ -58,7 +58,7 @@ public function postSubscribe() { $email = Binput::get('email'); $subscriptions = Binput::get('subscriptions'); - $verified = app(Repository::class)->get('setting.skip_subscriber_verification')); + $verified = app(Repository::class)->get('setting.skip_subscriber_verification'); try { $subscription = dispatch(new SubscribeSubscriberCommand($email, $verified)); From f53e46650008a6eaf9dee3a0508d27aa6849d7ef Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Wed, 20 Jul 2016 14:56:55 -0400 Subject: [PATCH 4/5] Applied fixes from StyleCI [ci skip] [skip ci] --- app/Http/Controllers/Api/SubscriberController.php | 2 +- app/Http/Controllers/Dashboard/SubscriberController.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Api/SubscriberController.php b/app/Http/Controllers/Api/SubscriberController.php index b82a0c7ee8da..4d1793deb1a1 100644 --- a/app/Http/Controllers/Api/SubscriberController.php +++ b/app/Http/Controllers/Api/SubscriberController.php @@ -14,10 +14,10 @@ use CachetHQ\Cachet\Bus\Commands\Subscriber\SubscribeSubscriberCommand; use CachetHQ\Cachet\Bus\Commands\Subscriber\UnsubscribeSubscriberCommand; use CachetHQ\Cachet\Bus\Commands\Subscriber\UnsubscribeSubscriptionCommand; -use Illuminate\Contracts\Config\Repository; use CachetHQ\Cachet\Models\Subscriber; use CachetHQ\Cachet\Models\Subscription; use GrahamCampbell\Binput\Facades\Binput; +use Illuminate\Contracts\Config\Repository; use Illuminate\Database\QueryException; use Illuminate\Support\Facades\Request; use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; diff --git a/app/Http/Controllers/Dashboard/SubscriberController.php b/app/Http/Controllers/Dashboard/SubscriberController.php index 6fb39626f61f..9e1e6185d85b 100644 --- a/app/Http/Controllers/Dashboard/SubscriberController.php +++ b/app/Http/Controllers/Dashboard/SubscriberController.php @@ -14,9 +14,9 @@ use AltThree\Validator\ValidationException; use CachetHQ\Cachet\Bus\Commands\Subscriber\SubscribeSubscriberCommand; use CachetHQ\Cachet\Bus\Commands\Subscriber\UnsubscribeSubscriberCommand; -use Illuminate\Contracts\Config\Repository; use CachetHQ\Cachet\Models\Subscriber; use GrahamCampbell\Binput\Facades\Binput; +use Illuminate\Contracts\Config\Repository; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\Redirect; use Illuminate\Support\Facades\View; From ef694b027a6029347667c0a73ea2215d3ef2736c Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Wed, 20 Jul 2016 19:58:49 +0100 Subject: [PATCH 5/5] Removed old variable --- .../Subscriber/SendSubscriberVerificationEmailHandler.php | 7 ------- 1 file changed, 7 deletions(-) diff --git a/app/Bus/Handlers/Events/Subscriber/SendSubscriberVerificationEmailHandler.php b/app/Bus/Handlers/Events/Subscriber/SendSubscriberVerificationEmailHandler.php index e0650c060e44..306280dcfc1a 100644 --- a/app/Bus/Handlers/Events/Subscriber/SendSubscriberVerificationEmailHandler.php +++ b/app/Bus/Handlers/Events/Subscriber/SendSubscriberVerificationEmailHandler.php @@ -24,13 +24,6 @@ class SendSubscriberVerificationEmailHandler */ protected $mailer; - /** - * The illuminate config instance. - * - * @var \Illuminate\Contracts\Config\Repository - */ - protected $config; - /** * Create a new send subscriber verification email handler. *