From: Eugen Rochko Date: Wed, 6 Jun 2018 19:13:30 +0000 (+0200) Subject: Filter out blocked/muted people from profile timelines (#7747) X-Git-Url: https://git.xn--scling-oua.cat.family/?a=commitdiff_plain;h=59b42188a73b7c7c09d91b1111a31d72f2f6e9b7;p=mastodon.git Filter out blocked/muted people from profile timelines (#7747) Fix #7741 --- diff --git a/app/models/status.rb b/app/models/status.rb index 5189e173d..7fa069083 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -305,7 +305,11 @@ class Status < ApplicationRecord # non-followers can see everything that isn't private/direct, but can see stuff they are mentioned in. visibility.push(:private) if account.following?(target_account) - where(visibility: visibility).or(where(id: account.mentions.select(:status_id))) + scope = left_outer_joins(:reblog) + + scope.where(visibility: visibility) + .or(scope.where(id: account.mentions.select(:status_id))) + .merge(scope.where(reblog_of_id: nil).or(scope.where.not(reblogs_statuses: { account_id: account.excluded_from_timeline_account_ids }))) end end