From cc1add81b043a206edf917fe0031d1d4e934ee7a Mon Sep 17 00:00:00 2001
From: Gonzalo Rodriguez <gonzalo@wyeworks.com>
Date: Sat, 27 Aug 2011 02:45:58 -0300
Subject: [PATCH] Avoid RecordNotFound exception thrown by find method when
 invalid person_id

---
 app/controllers/people_controller.rb       | 2 +-
 spec/controllers/people_controller_spec.rb | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/app/controllers/people_controller.rb b/app/controllers/people_controller.rb
index d14468e672..5e8972aafe 100644
--- a/app/controllers/people_controller.rb
+++ b/app/controllers/people_controller.rb
@@ -141,7 +141,7 @@ class PeopleController < ApplicationController
   end
 
   def contacts
-    @person = Person.find(params[:person_id])
+    @person = Person.find_by_id(params[:person_id])
     if @person
       @contact = current_user.contact_for(@person)
       @aspect = :profile
diff --git a/spec/controllers/people_controller_spec.rb b/spec/controllers/people_controller_spec.rb
index 5cdd125c6f..408935e40b 100644
--- a/spec/controllers/people_controller_spec.rb
+++ b/spec/controllers/people_controller_spec.rb
@@ -322,6 +322,12 @@ describe PeopleController do
       assigns(:contacts_of_contact).should == contacts
       response.should be_success
     end
+
+    it 'shows an error when invalid person id' do
+      get :contacts, :person_id => 'foo'
+      flash[:error].should be_present
+      response.should redirect_to people_path
+    end
   end
 
   describe '#webfinger' do
-- 
GitLab