Browse Source

quote: reject non-local quotes of local-only statuses

pull/1371/head
Misty De Meo 2 months ago
parent
commit
1c9a9fb21c
No known key found for this signature in database
GPG Key ID: 76CF846A2F674B2C
  1. 7
      app/models/quote.rb

7
app/models/quote.rb

@ -40,6 +40,7 @@ class Quote < ApplicationRecord
validates :approval_uri, absence: true, if: -> { quoted_account&.local? }
validate :validate_visibility
validate :validate_original_quoted_status
validate :validate_federation
after_create_commit :increment_counter_caches!
after_destroy_commit :decrement_counter_caches!
@ -90,6 +91,12 @@ class Quote < ApplicationRecord
errors.add(:quoted_status_id, :reblog_unallowed) if quoted_status&.reblog?
end
def validate_federation
return if quoted_status.nil? || !quoted_status.local_only
errors.add(:quoted_status_id, :federating_quote_of_local_only_status) unless status.local_only
end
def set_activity_uri
self.activity_uri = [ActivityPub::TagManager.instance.uri_for(account), '/quote_requests/', SecureRandom.uuid].join
end

Loading…
Cancel
Save