Fix support for quote verification in implicit status updates (#35384)
This commit is contained in:
		@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user