Filter out blocked/muted people from profile timelines (#7747)

Fix #7741
This commit is contained in:
Eugen Rochko 2018-06-06 21:13:30 +02:00 committed by GitHub
parent 683707839f
commit 59b42188a7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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