* Move ActivityPub::FetchRemoteAccountService to ActivityPub::FetchRemoteActorService ActivityPub::FetchRemoteAccountService is kept as a wrapper for when the actor is specifically required to be an Account * Refactor SignatureVerification to allow non-Account actors * fixup! Move ActivityPub::FetchRemoteAccountService to ActivityPub::FetchRemoteActorService * Refactor ActivityPub::FetchRemoteKeyService to potentially return non-Account actors * Refactor inbound ActivityPub payload processing to accept non-Account actors * Refactor inbound ActivityPub processing to accept activities relayed through non-Account * Refactor how Account key URIs are built * Refactor Request and drop unused key_id_format parameter * Rename ActivityPub::Dereferencer `signature_account` to `signature_actor`
		
			
				
	
	
		
			12 lines
		
	
	
	
		
			567 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			12 lines
		
	
	
	
		
			567 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
class ActivityPub::FetchRemoteAccountService < ActivityPub::FetchRemoteActorService
 | 
						|
  # Does a WebFinger roundtrip on each call, unless `only_key` is true
 | 
						|
  def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true)
 | 
						|
    actor = super
 | 
						|
    return actor if actor.nil? || actor.is_a?(Account)
 | 
						|
 | 
						|
    Rails.logger.debug "Fetching account #{uri} failed: Expected Account, got #{actor.class.name}"
 | 
						|
    raise Error, "Expected Account, got #{actor.class.name}" unless suppress_errors
 | 
						|
  end
 | 
						|
end
 |