diff --git a/app/models/person.rb b/app/models/person.rb index 4a1b199..7ca25ad 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -30,7 +30,9 @@ class Person < Profile end def add_friend(friend, group = nil) - self.friendships.build(:friend => friend, :group => group).save! + unless self.is_a_friend?(friend) + self.friendships.build(:friend => friend, :group => group).save! + end end def already_request_friendship?(person) diff --git a/test/unit/person_test.rb b/test/unit/person_test.rb index 1591d45..af58f8c 100644 --- a/test/unit/person_test.rb +++ b/test/unit/person_test.rb @@ -555,4 +555,12 @@ class PersonTest < Test::Unit::TestCase assert_equal 'http://website.with.http', p.organization_website end + should 'not add a friend if already is a friend' do + p1 = create_user('testuser1').person + p2 = create_user('testuser2').person + assert p1.add_friend(p2) + assert Profile['testuser1'].is_a_friend?(p2) + assert !Profile['testuser1'].add_friend(p2) + end + end -- libgit2 0.21.2