Fix support for quote verification in implicit status updates (#35384)
This commit is contained in:
parent
ee83f3a8b9
commit
da0cc0f5b9
2 changed files with 181 additions and 8 deletions
|
|
@ -66,6 +66,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
|
|||
update_interaction_policies!
|
||||
update_poll!(allow_significant_changes: false)
|
||||
queue_poll_notifications!
|
||||
update_quote_approval!
|
||||
update_counts!
|
||||
end
|
||||
end
|
||||
|
|
@ -270,6 +271,23 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
|
|||
end
|
||||
end
|
||||
|
||||
# This method is only concerned with approval and skips other meaningful changes,
|
||||
# as it is used instead of `update_quote!` in implicit updates
|
||||
def update_quote_approval!
|
||||
quote_uri = @status_parser.quote_uri
|
||||
return unless quote_uri.present? && @status.quote.present?
|
||||
|
||||
quote = @status.quote
|
||||
return if quote.quoted_status.present? && ActivityPub::TagManager.instance.uri_for(quote.quoted_status) != quote_uri
|
||||
|
||||
approval_uri = @status_parser.quote_approval_uri
|
||||
approval_uri = nil if unsupported_uri_scheme?(approval_uri)
|
||||
|
||||
quote.update(approval_uri: approval_uri, state: :pending, legacy: @status_parser.legacy_quote?) if quote.approval_uri != @status_parser.quote_approval_uri
|
||||
|
||||
fetch_and_verify_quote!(quote, quote_uri)
|
||||
end
|
||||
|
||||
def update_quote!
|
||||
quote_uri = @status_parser.quote_uri
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue