diff --git a/app/models/user.rb b/app/models/user.rb index e4406c0a6..b5d0716c1 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -269,12 +269,12 @@ class User self.save groups = self.groups_with_person(object.person) - groups.each{ |group| group.posts << object - group.save + groups.each{ |group| + group.posts << object + group.save + object.socket_to_uid(id, :group_id => group.id) if (object.respond_to?(:socket_to_uid) && !self.owns?(object)) } - groups = groups_with_person(object.person) - object.socket_to_uid(id, :group_id => group.id) if (object.respond_to?(:socket_to_uid) && !self.owns?(object)) end end diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb index 26f3397d4..530bcec8c 100644 --- a/spec/models/group_spec.rb +++ b/spec/models/group_spec.rb @@ -37,7 +37,11 @@ describe Group do describe 'querying' do before do - @group = @user.group(:name => 'losers', :people => [@friend]) + @group = @user.group(:name => 'losers') + @user.activate_friend(@friend, @group) + @group2 = @user2.group(:name => 'failures') + friend_users(@user, @group, @user2, @group2) + @group.reload end it 'belong to a user' do @@ -48,7 +52,16 @@ describe Group do it 'should have people' do @group.people.all.include?(@friend).should be true - @group.people.size.should == 1 + @group.people.size.should == 2 + end + + it 'should be accessible through the user' do + groups = @user.groups_with_person(@friend) + groups.size.should == 1 + groups.first.id.should == @group.id + groups.first.people.size.should == 2 + groups.first.people.include?(@friend).should be true + groups.first.people.include?(@user2.person).should be true end end