Filter searched toots to be consistent with blocking behaviors (#5383)
This commit is contained in:
		@@ -1,6 +1,8 @@
 | 
				
			|||||||
# frozen_string_literal: true
 | 
					# frozen_string_literal: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Api::V1::SearchController < Api::BaseController
 | 
					class Api::V1::SearchController < Api::BaseController
 | 
				
			||||||
 | 
					  include Authorization
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  RESULTS_LIMIT = 5
 | 
					  RESULTS_LIMIT = 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  before_action -> { doorkeeper_authorize! :read }
 | 
					  before_action -> { doorkeeper_authorize! :read }
 | 
				
			||||||
@@ -9,12 +11,24 @@ class Api::V1::SearchController < Api::BaseController
 | 
				
			|||||||
  respond_to :json
 | 
					  respond_to :json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def index
 | 
					  def index
 | 
				
			||||||
    @search = Search.new(search_results)
 | 
					    @search = Search.new(search)
 | 
				
			||||||
    render json: @search, serializer: REST::SearchSerializer
 | 
					    render json: @search, serializer: REST::SearchSerializer
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private
 | 
					  private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def search
 | 
				
			||||||
 | 
					    search_results.tap do |search|
 | 
				
			||||||
 | 
					      search[:statuses].keep_if do |status|
 | 
				
			||||||
 | 
					        begin
 | 
				
			||||||
 | 
					          authorize status, :show?
 | 
				
			||||||
 | 
					        rescue Mastodon::NotPermittedError
 | 
				
			||||||
 | 
					          false
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def search_results
 | 
					  def search_results
 | 
				
			||||||
    SearchService.new.call(
 | 
					    SearchService.new.call(
 | 
				
			||||||
      params[:q],
 | 
					      params[:q],
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user