From a94d7bf520ccb1b21555fa6cff1c45e1dc015bd9 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 18 Sep 2025 15:21:17 +0200 Subject: [PATCH] Change quoted posts from silenced accounts not to be hidden (#36166) --- app/lib/status_cache_hydrator.rb | 2 +- app/lib/status_filter.rb | 6 ++++++ app/serializers/rest/base_quote_serializer.rb | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/lib/status_cache_hydrator.rb b/app/lib/status_cache_hydrator.rb index 674945c40..70c9feb13 100644 --- a/app/lib/status_cache_hydrator.rb +++ b/app/lib/status_cache_hydrator.rb @@ -85,7 +85,7 @@ class StatusCacheHydrator if quote.quoted_status.nil? payload[nested ? :quoted_status_id : :quoted_status] = nil payload[:state] = 'deleted' - elsif StatusFilter.new(quote.quoted_status, Account.find_by(id: account_id)).filtered? + elsif StatusFilter.new(quote.quoted_status, Account.find_by(id: account_id)).filtered_for_quote? payload[nested ? :quoted_status_id : :quoted_status] = nil payload[:state] = 'unauthorized' else diff --git a/app/lib/status_filter.rb b/app/lib/status_filter.rb index eb522e544..dbf7d28b6 100644 --- a/app/lib/status_filter.rb +++ b/app/lib/status_filter.rb @@ -15,6 +15,12 @@ class StatusFilter blocked_by_policy? || (account_present? && filtered_status?) || silenced_account? end + def filtered_for_quote? + return false if !account.nil? && account.id == status.account_id + + blocked_by_policy? || (account_present? && filtered_status?) + end + private def account_present? diff --git a/app/serializers/rest/base_quote_serializer.rb b/app/serializers/rest/base_quote_serializer.rb index 20a53d1a2..be9d5cbe6 100644 --- a/app/serializers/rest/base_quote_serializer.rb +++ b/app/serializers/rest/base_quote_serializer.rb @@ -8,13 +8,13 @@ class REST::BaseQuoteSerializer < ActiveModel::Serializer # Extra states when a status is unavailable return 'deleted' if object.quoted_status.nil? - return 'unauthorized' if status_filter.filtered? + return 'unauthorized' if status_filter.filtered_for_quote? object.state end def quoted_status - object.quoted_status if object.accepted? && object.quoted_status.present? && !status_filter.filtered? + object.quoted_status if object.accepted? && object.quoted_status.present? && !status_filter.filtered_for_quote? end private