diff --git a/app/controllers/requests_controller.rb b/app/controllers/requests_controller.rb index f5c73660f..ae274c142 100644 --- a/app/controllers/requests_controller.rb +++ b/app/controllers/requests_controller.rb @@ -13,7 +13,7 @@ class RequestsController < ApplicationController @friend = current_user.accept_and_respond( params[:id], params[:group_id]) flash[:notice] = "you are now friends" - redirect_to root_url + redirect_to current_user.group_by_id(params[:group_id]) else flash[:error] = "please select a group!" redirect_to requests_url diff --git a/app/models/user.rb b/app/models/user.rb index 1f82115ae..ead632e74 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -263,7 +263,7 @@ class User person.save elsif object.is_a?(Comment) - dispatch_comment object unless owns?(object) + dispatch_comment object unless owns?(object) else Rails.logger.debug("Saving object: #{object}") object.user_refs += 1 @@ -273,16 +273,18 @@ 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 ###Helpers############ + def self.instantiate( opts = {} ) opts[:person][:email] = opts[:email] opts[:person][:serialized_key] = generate_key diff --git a/db/seeds/dev.rb b/db/seeds/dev.rb index f13e27f4c..0dfe3f96e 100644 --- a/db/seeds/dev.rb +++ b/db/seeds/dev.rb @@ -1,25 +1,28 @@ -# This file should contain all the record creation needed to seed the database with its default values. -# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup). -# -# Examples: -# -# cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }]) -# Mayor.create(:name => 'Daley', :city => citie - require 'config/environment' +host = "localhost:3000" +url = "http://#{host}/" # Create seed user -user = User.create( :email => "robert@joindiaspora.com", - :password => "evankorth", +user = User.create!( :email => "tom@tom.joindiaspora.com", + :password => "evankorth", :person => Person.new( - :email => "robert@joindiaspora.com", - :url => "http://localhost:3000/", - :profile => Profile.new( - :first_name => "bobert", - :last_name => "brin" ))) + :email => "tom@tom.joindiaspora.com", + :url => url, + :profile => Profile.new( :first_name => "Alexander", :last_name => "Hamiltom" )) + ) +user.person.save! -puts user.save -puts user.person.save! -puts user.save! -puts user.person.inspect -puts user.inspect +user2 = User.create!( :email => "korth@tom.joindiaspora.com", + :password => "evankorth", + :person => Person.new( :email => "korth@tom.joindiaspora.com", + :url => url, + :profile => Profile.new( :first_name => "Evan", + :last_name => "Korth"))) + +user2.person.save! + +# friending users +group = user.group(:name => "other dudes") +request = user.send_friend_request_to(user2.receive_url, group.id) +reversed_request = user2.accept_friend_request( request.id, user2.group(:name => "presidents").id ) +user.receive reversed_request.to_diaspora_xml diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb index 15de4bdbe..dc0920a66 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