diff --git a/app/controllers/publics_controller.rb b/app/controllers/publics_controller.rb index 2c864fd0b6aca2021d83c704025465a5b8d87981..6e54615067b8b18982d76dfa325821bfd0666f62 100644 --- a/app/controllers/publics_controller.rb +++ b/app/controllers/publics_controller.rb @@ -49,7 +49,7 @@ class PublicsController < ApplicationController person = Person.where(:guid => params[:guid]).first - if person.owner_id.nil? + if person.nil? || person.owner_id.nil? Rails.logger.error("Received post for nonexistent person #{params[:guid]}") render :nothing => true, :status => 404 return diff --git a/spec/controllers/publics_controller_spec.rb b/spec/controllers/publics_controller_spec.rb index a4eb80d1fd61c9cc37a6966c0ff8fff39b335e2d..01c958e83ce0afd6e03eb507118df54bfacf05dd 100644 --- a/spec/controllers/publics_controller_spec.rb +++ b/spec/controllers/publics_controller_spec.rb @@ -55,6 +55,10 @@ describe PublicsController do post :receive, "guid" => @person.guid.to_s, "xml" => xml response.should be_not_found end + it 'returns a 404 if no person is found' do + post :receive, :guid => '2398rq3948yftn', :xml => xml + response.should be_not_found + end end describe '#hcard' do