From c0eabe289bfadbaabe9cbcf49a8e11a0263f26f5 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 15 Jul 2025 15:01:03 +0200 Subject: [PATCH] Always give local quote of remote posts a quote request URI (#35383) --- app/models/quote.rb | 6 +++++- app/serializers/activitypub/quote_request_serializer.rb | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/models/quote.rb b/app/models/quote.rb index c981591e17f..89845ed9f49 100644 --- a/app/models/quote.rb +++ b/app/models/quote.rb @@ -31,7 +31,7 @@ class Quote < ApplicationRecord belongs_to :quoted_account, class_name: 'Account', optional: true before_validation :set_accounts - + before_validation :set_activity_uri, only: :create, if: -> { account.local? && quoted_account&.remote? } validates :activity_uri, presence: true, if: -> { account.local? && quoted_account&.remote? } validate :validate_visibility @@ -69,4 +69,8 @@ class Quote < ApplicationRecord errors.add(:quoted_status_id, :visibility_mismatch) end + + def set_activity_uri + self.activity_uri = [ActivityPub::TagManager.instance.uri_for(account), '/quote_requests/', SecureRandom.uuid].join + end end diff --git a/app/serializers/activitypub/quote_request_serializer.rb b/app/serializers/activitypub/quote_request_serializer.rb index d68b3c2d871..840b653a1c7 100644 --- a/app/serializers/activitypub/quote_request_serializer.rb +++ b/app/serializers/activitypub/quote_request_serializer.rb @@ -7,7 +7,7 @@ class ActivityPub::QuoteRequestSerializer < ActivityPub::Serializer attribute :virtual_object, key: :object def id - object.activity_uri || [ActivityPub::TagManager.instance.uri_for(object.target_account), '#quote_requests/', object.id].join + object.activity_uri end def type