Fix already-known remote private toots not being searchable by URL (#12336)
* Fix already-known remote private toots not being searchable by URL Whenever an URL search fails, and an account is provided, try getting a private status matching that URL from database. * Fix searching by `id` field instead of `uri`
This commit is contained in:
		
							parent
							
								
									823dcc4dc6
								
							
						
					
					
						commit
						0d5f3ae331
					
				@ -24,6 +24,12 @@ class ResolveURLService < BaseService
 | 
				
			|||||||
      status = FetchRemoteStatusService.new.call(resource_url, body, protocol)
 | 
					      status = FetchRemoteStatusService.new.call(resource_url, body, protocol)
 | 
				
			||||||
      authorize_with @on_behalf_of, status, :show? unless status.nil?
 | 
					      authorize_with @on_behalf_of, status, :show? unless status.nil?
 | 
				
			||||||
      status
 | 
					      status
 | 
				
			||||||
 | 
					    elsif fetched_resource.nil? && @on_behalf_of.present?
 | 
				
			||||||
 | 
					      # It may happen that the resource is a private toot, and thus not fetchable,
 | 
				
			||||||
 | 
					      # but we can return the toot if we already know about it.
 | 
				
			||||||
 | 
					      status = Status.find_by(uri: @url) || Status.find_by(url: @url)
 | 
				
			||||||
 | 
					      authorize_with @on_behalf_of, status, :show? unless status.nil?
 | 
				
			||||||
 | 
					      status
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user