Fix webfinger response not returning 410 when account is suspended (#11869)
This commit is contained in:
		
							parent
							
								
									0e5b9e3ba0
								
							
						
					
					
						commit
						b671b91211
					
				
					 1 changed files with 20 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -5,18 +5,22 @@ module WellKnown
 | 
			
		|||
    include RoutingHelper
 | 
			
		||||
 | 
			
		||||
    before_action { response.headers['Vary'] = 'Accept' }
 | 
			
		||||
    before_action :set_account
 | 
			
		||||
    before_action :check_account_suspension
 | 
			
		||||
 | 
			
		||||
    rescue_from ActiveRecord::RecordNotFound, ActionController::ParameterMissing, with: :not_found
 | 
			
		||||
 | 
			
		||||
    def show
 | 
			
		||||
      @account = Account.find_local!(username_from_resource)
 | 
			
		||||
 | 
			
		||||
      expires_in 3.days, public: true
 | 
			
		||||
      render json: @account, serializer: WebfingerSerializer, content_type: 'application/jrd+json'
 | 
			
		||||
    rescue ActiveRecord::RecordNotFound, ActionController::ParameterMissing
 | 
			
		||||
      head 404
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    private
 | 
			
		||||
 | 
			
		||||
    def set_account
 | 
			
		||||
      @account = Account.find_local!(username_from_resource)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def username_from_resource
 | 
			
		||||
      resource_user    = resource_param
 | 
			
		||||
      username, domain = resource_user.split('@')
 | 
			
		||||
| 
						 | 
				
			
			@ -28,5 +32,17 @@ module WellKnown
 | 
			
		|||
    def resource_param
 | 
			
		||||
      params.require(:resource)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def check_account_suspension
 | 
			
		||||
      expires_in(3.minutes, public: true) && gone if @account.suspended?
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def not_found
 | 
			
		||||
      head 404
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def gone
 | 
			
		||||
      head 410
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue