Don't show statuses to blocked users
This commit is contained in:
parent
3282448878
commit
7376af90f7
4 changed files with 44 additions and 6 deletions
|
@ -31,7 +31,6 @@ class Status < ApplicationRecord
|
|||
|
||||
scope :remote, -> { where.not(uri: nil) }
|
||||
scope :local, -> { where(uri: nil) }
|
||||
scope :permitted_for, ->(target_account, account) { account&.id == target_account.id || account&.following?(target_account) ? where('1=1') : where.not(visibility: :private) }
|
||||
|
||||
cache_associated :account, :media_attachments, :tags, :stream_entry, mentions: :account, reblog: [:account, :stream_entry, :tags, :media_attachments, mentions: :account], thread: :account
|
||||
|
||||
|
@ -72,7 +71,7 @@ class Status < ApplicationRecord
|
|||
end
|
||||
|
||||
def permitted?(other_account = nil)
|
||||
private_visibility? ? (account.id == other_account&.id || other_account&.following?(account)) : true
|
||||
private_visibility? ? (account.id == other_account&.id || other_account&.following?(account)) : other_account.nil? || !account.blocking?(other_account)
|
||||
end
|
||||
|
||||
def ancestors(account = nil)
|
||||
|
@ -145,6 +144,16 @@ class Status < ApplicationRecord
|
|||
end
|
||||
end
|
||||
|
||||
def permitted_for(target_account, account)
|
||||
if account&.id == target_account.id || account&.following?(target_account)
|
||||
where('1 = 1')
|
||||
elsif !account.nil? && target_account.blocking?(account)
|
||||
where('1 = 0')
|
||||
else
|
||||
where.not(visibility: :private)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def filter_timeline(query, account)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue