prevent leaking deleted discussions
This commit is contained in:
parent
cc8145c236
commit
c6fd942bf1
|
|
@ -131,8 +131,13 @@ class SearchController extends ListDiscussionsController
|
|||
$discussions = Discussion::query()
|
||||
->select('discussions.*')
|
||||
->join('posts', 'posts.discussion_id', 'discussions.id')
|
||||
// Extra safety to prevent leaking hidden discussion (titles) towards search results.
|
||||
->when(! $actor->hasPermission('discussion.hide'), fn($query) => $query->whereNull('hidden_at'))
|
||||
->where(function ($query) use ($results) {
|
||||
$query
|
||||
->whereIn('discussions.id', $results->pluck('discussion_id')->filter())
|
||||
->orWhereIn('posts.id', $results->pluck('most_relevant_post_id')->filter())
|
||||
})
|
||||
->get()
|
||||
->each(function (Discussion $discussion) use ($results) {
|
||||
if (in_array($discussion->id, $results->pluck('discussion_id')->toArray())) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue