Merge pull request #1214 from cachethq/subcribers-verified-scopes

Added subcriber verified scope and already subscribed msg
This commit is contained in:
Joe Cohen
2015-12-09 18:33:08 -06:00
4 changed files with 23 additions and 5 deletions

View File

@@ -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->verified()->get() as $subscriber) {
$mail = [
'email' => $subscriber->email,
'subject' => 'New incident reported.',

View File

@@ -62,7 +62,7 @@ class SendMaintenanceEmailNotificationHandler
$data = AutoPresenter::decorate($event->incident);
foreach ($this->subscriber->all() as $subscriber) {
foreach ($this->subscriber->verified()->get() as $subscriber) {
$mail = [
'email' => $subscriber->email,
'subject' => 'Scheduled maintenance.',

View File

@@ -15,6 +15,7 @@ use AltThree\Validator\ValidationException;
use CachetHQ\Cachet\Commands\Subscriber\SubscribeSubscriberCommand;
use CachetHQ\Cachet\Commands\Subscriber\UnsubscribeSubscriberCommand;
use CachetHQ\Cachet\Commands\Subscriber\VerifySubscriberCommand;
use CachetHQ\Cachet\Exceptions\AlreadySubscribedException;
use CachetHQ\Cachet\Facades\Setting;
use CachetHQ\Cachet\Models\Subscriber;
use GrahamCampbell\Binput\Facades\Binput;
@@ -50,6 +51,10 @@ class SubscribeController extends Controller
{
try {
$this->dispatch(new SubscribeSubscriberCommand(Binput::get('email')));
} catch (AlreadySubscribedException $e) {
return Redirect::route('subscribe.subscribe')
->withTitle(sprintf('<strong>%s</strong> %s', trans('dashboard.notifications.whoops'), trans('cachet.subscriber.email.failure')))
->withErrors($e->getMessage());
} catch (ValidationException $e) {
return Redirect::route('subscribe.subscribe')
->withInput(Binput::all())
@@ -76,7 +81,7 @@ class SubscribeController extends Controller
$subscriber = Subscriber::where('verify_code', '=', $code)->first();
if (!$subscriber || $subscriber->verified()) {
if (!$subscriber || $subscriber->is_verified) {
throw new BadRequestHttpException();
}
@@ -101,7 +106,7 @@ class SubscribeController extends Controller
$subscriber = Subscriber::where('verify_code', '=', $code)->first();
if (!$subscriber || !$subscriber->verified()) {
if (!$subscriber || !$subscriber->is_verified) {
throw new BadRequestHttpException();
}

View File

@@ -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,12 +63,24 @@ class Subscriber extends Model implements HasPresenter
});
}
/**
* Scope a query to only include verified subscribers.
*
* @param \Illuminate\Database\Eloquent\Builder $query
*
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeVerified(Builder $query)
{
return $query->whereNotNull('verified_at');
}
/**
* Determines if the subscriber is verified.
*
* @return bool
*/
public function verified()
public function getIsVerifiedAttribute()
{
return $this->verified_at !== null;
}