/** * @param User $actor * @param Builder $query */ public function find(User $actor, Builder $query) { if ($actor->cannot('viewDiscussions')) { $query->whereRaw('FALSE'); } elseif (!$actor->hasPermission('discussion.hide')) { $query->where(function ($query) use($actor) { $query->whereNull('discussions.hide_time')->where('comments_count', '>', 0)->orWhere('start_user_id', $actor->id); $this->events->fire(new ScopeHiddenDiscussionVisibility($query, $actor, 'discussion.hide')); }); } }
/** * @param User $actor * @param Builder $query */ public function find(User $actor, Builder $query) { if ($actor->cannot('viewDiscussions')) { $query->whereRaw('FALSE'); } }
/** * @param User $actor * @param Discussion $discussion * @return bool */ public function reply(User $actor, Discussion $discussion) { if ($discussion->is_locked && $actor->cannot('lock', $discussion)) { return false; } }