diff --git a/app/Handlers/Events/Incident/SendIncidentEmailNotificationHandler.php b/app/Handlers/Events/Incident/SendIncidentEmailNotificationHandler.php index 6e8ed357..94ccef00 100644 --- a/app/Handlers/Events/Incident/SendIncidentEmailNotificationHandler.php +++ b/app/Handlers/Events/Incident/SendIncidentEmailNotificationHandler.php @@ -65,7 +65,7 @@ class SendIncidentEmailNotificationHandler // Only send emails for public incidents. if ($event->incident->visible === 1) { - foreach ($this->subscriber->all() as $subscriber) { + foreach ($this->subscriber->isVerified()->get() as $subscriber) { $mail = [ 'email' => $subscriber->email, 'subject' => 'New incident reported.', diff --git a/app/Handlers/Events/Incident/SendMaintenanceEmailNotificationHandler.php b/app/Handlers/Events/Incident/SendMaintenanceEmailNotificationHandler.php index 70530ce2..877f2f08 100644 --- a/app/Handlers/Events/Incident/SendMaintenanceEmailNotificationHandler.php +++ b/app/Handlers/Events/Incident/SendMaintenanceEmailNotificationHandler.php @@ -62,7 +62,7 @@ class SendMaintenanceEmailNotificationHandler $data = AutoPresenter::decorate($event->incident); - foreach ($this->subscriber->all() as $subscriber) { + foreach ($this->subscriber->isVerified()->get() as $subscriber) { $mail = [ 'email' => $subscriber->email, 'subject' => 'Scheduled maintenance.', diff --git a/app/Models/Subscriber.php b/app/Models/Subscriber.php index 4d3adbe5..0b7c89b0 100644 --- a/app/Models/Subscriber.php +++ b/app/Models/Subscriber.php @@ -13,6 +13,7 @@ namespace CachetHQ\Cachet\Models; use AltThree\Validator\ValidatingTrait; use CachetHQ\Cachet\Presenters\SubscriberPresenter; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Model; use McCool\LaravelAutoPresenter\HasPresenter; @@ -62,6 +63,18 @@ class Subscriber extends Model implements HasPresenter }); } + /** + * Scope verified subscribers. + * + * @param \Illuminate\Database\Eloquent\Builder $query + * + * @return \Illuminate\Database\Eloquent\Builder + */ + public function scopeIsVerified(Builder $query) + { + return $query->whereNotNull('verified_at'); + } + /** * Determines if the subscriber is verified. *