From b37b8303d3ec43042355329334f325a7eab25071 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 16 Aug 2010 11:55:32 -0700 Subject: [PATCH 01/15] Check for friending yourself in requests helper --- app/helpers/requests_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/requests_helper.rb b/app/helpers/requests_helper.rb index 478d9853b..16a50a886 100644 --- a/app/helpers/requests_helper.rb +++ b/app/helpers/requests_helper.rb @@ -29,7 +29,7 @@ module RequestsHelper puts request.host if identifier.include?(request.host) person = Person.by_webfinger identifier - action = :friend + action = (person == current_user.person ? :none : :friend) url = person.owner.receive_url else f = Redfinger.finger(identifier) From 4f22222b300c242c4f344d0400b42b0153057d54 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 16 Aug 2010 12:10:23 -0700 Subject: [PATCH 02/15] Splitting accept_friend_request into two methods --- app/controllers/requests_controller.rb | 2 +- app/models/user.rb | 10 ++++++++-- db/seeds/tom.rb | 3 ++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/controllers/requests_controller.rb b/app/controllers/requests_controller.rb index 4caff37f4..705e781b6 100644 --- a/app/controllers/requests_controller.rb +++ b/app/controllers/requests_controller.rb @@ -8,7 +8,7 @@ class RequestsController < ApplicationController def destroy if params[:accept] - @friend = current_user.accept_friend_request( params[:id], current_user.groups.first.id) + @friend = current_user.accept_and_respond( params[:id], current_user.groups.first.id) flash[:notice] = "you are now friends" redirect_to root_url diff --git a/app/models/user.rb b/app/models/user.rb index b086535b2..1de2d3e76 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -63,11 +63,17 @@ class User activate_friend(request.person, group_by_id(group_id)) request.reverse self - + request + end + + def dispatch_friend_acceptance request request.push_to_url(request.callback_url) - request.destroy end + + def accept_and_respond(friend_request_id, group_id) + dispatch_friend_acceptance(accept_friend_request(friend_request_id, group_id)) + end def ignore_friend_request(friend_request_id) request = Request.first(:id => friend_request_id) diff --git a/db/seeds/tom.rb b/db/seeds/tom.rb index 6f3e84582..d3aa7289b 100644 --- a/db/seeds/tom.rb +++ b/db/seeds/tom.rb @@ -22,4 +22,5 @@ user2.person.save # friending users group = user.group(:name => "other dudes") request = user.send_friend_request_to(user2.receive_url, group.id) -user2.accept_friend_request request.id, user2.group(:name => "presidents").id +reversed_request = user2.accept_friend_request( request.id, user2.group(:name => "presidents").id ) +user.receive reversed_request.to_diaspora_xml From d7a9c3c0874f45a8329381dbc99e688b2e72e198 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 16 Aug 2010 12:18:36 -0700 Subject: [PATCH 03/15] Take out another couple friends.first and replace with friend_by_id --- app/controllers/application_controller.rb | 2 +- app/controllers/people_controller.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 89c637b13..c3b74a861 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -20,7 +20,7 @@ class ApplicationController < ActionController::Base @groups = current_user.groups @friends = current_user.friends @latest_status_message = StatusMessage.newest_for(current_user.person) - @group = params[:group] ? current_user.groups.first(:id => params[:group]) : current_user.groups.first + @group = params[:group] ? current_user.group_by_id(params[:group]) : current_user.groups.first end end diff --git a/app/controllers/people_controller.rb b/app/controllers/people_controller.rb index 686a81b88..16cb235b8 100644 --- a/app/controllers/people_controller.rb +++ b/app/controllers/people_controller.rb @@ -15,7 +15,7 @@ class PeopleController < ApplicationController end def destroy - current_user.unfriend(current_user.friends.first(params[:id])) + current_user.unfriend(current_user.friend_by_id(params[:id])) flash[:notice] = "unfriended person." redirect_to people_url end From fb8d3b3e85171a8b3f3d56448d15693d51f097d9 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 16 Aug 2010 12:26:15 -0700 Subject: [PATCH 04/15] Check for local person before destroying accepted request --- app/models/user.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 1de2d3e76..7279360b8 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -66,10 +66,10 @@ class User request end - def dispatch_friend_acceptance request + def dispatch_friend_acceptance(request) request.push_to_url(request.callback_url) - request.destroy - end + request.destroy unless request.callback_url.include? user.url + end def accept_and_respond(friend_request_id, group_id) dispatch_friend_acceptance(accept_friend_request(friend_request_id, group_id)) From 1f0ca49ce508742ca53a08f3396fdf541135b96a Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 16 Aug 2010 12:29:26 -0700 Subject: [PATCH 05/15] url, not user.url --- app/models/user.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index 7279360b8..d224cef44 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -68,7 +68,7 @@ class User def dispatch_friend_acceptance(request) request.push_to_url(request.callback_url) - request.destroy unless request.callback_url.include? user.url + request.destroy unless request.callback_url.include? url end def accept_and_respond(friend_request_id, group_id) From e2d5bf909f6da38ffa16c9cb7d89232d5928cc55 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 16 Aug 2010 12:45:31 -0700 Subject: [PATCH 06/15] Call right method in dev_utilities, clear junk out of comments helper --- app/controllers/dev_utilities_controller.rb | 2 +- app/helpers/comments_helper.rb | 8 +------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/app/controllers/dev_utilities_controller.rb b/app/controllers/dev_utilities_controller.rb index 0295e4114..a9711164e 100644 --- a/app/controllers/dev_utilities_controller.rb +++ b/app/controllers/dev_utilities_controller.rb @@ -39,7 +39,7 @@ def warzombie def zombiefriendaccept render :nothing => true Request.all.each{|r| - current_user.accept_friend_request(r.id, current_user.groups.first.id) + current_user.accept_and_respond(r.id, current_user.groups.first.id) } end diff --git a/app/helpers/comments_helper.rb b/app/helpers/comments_helper.rb index a94d176ad..b1e4df9cd 100644 --- a/app/helpers/comments_helper.rb +++ b/app/helpers/comments_helper.rb @@ -1,9 +1,3 @@ module CommentsHelper - def target - - end - - def text - params[:comment][:text] - end + end From 598c646b07dfefdf4971d3b0137a2b1ad2e83fae Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 16 Aug 2010 12:56:02 -0700 Subject: [PATCH 07/15] Hack to get comments working for now --- app/models/person.rb | 29 ++++++++++++++--------------- app/models/user.rb | 1 + 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/app/models/person.rb b/app/models/person.rb index 50a3cc410..827d4945d 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -77,22 +77,21 @@ class Person def send_comment( c ) if self.owner.nil? - if c.post.person.owner.nil? - #puts "The commenter is not here, and neither is the poster" - elsif c.post.person.owner - #puts "The commenter is not here, and the poster is" - c.push_downstream - end - else - if owns? c.post - #puts "The commenter is here, and is the poster" - c.push_downstream - else - #puts "The commenter is here, and is not the poster" - c.push_upstream - end + if c.post.person.owner.nil? + #puts "The commenter is not here, and neither is the poster" + elsif c.post.person.owner + #puts "The commenter is not here, and the poster is" + c.push_downstream end - + else + if owns? c.post + #puts "The commenter is here, and is the poster" + c.push_downstream + else + #puts "The commenter is here, and is not the poster" + c.push_upstream + end + end end ##profile def update_profile(params) diff --git a/app/models/user.rb b/app/models/user.rb index d224cef44..e35ec88cb 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -174,6 +174,7 @@ class User Rails.logger.debug("Saving object: #{object}") object.save object.socket_to_uid( id) if object.respond_to? :socket_to_uid + object.person.send_comment object if object.is_a? Comment end end From f8e2e6bf2dd2f1f3d421ae0067b7a5ee2ecc4bab Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 16 Aug 2010 13:49:48 -0700 Subject: [PATCH 08/15] Infinite loops are the best --- app/models/person.rb | 6 +++++- app/models/user.rb | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/models/person.rb b/app/models/person.rb index 827d4945d..fd601076f 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -76,7 +76,7 @@ class Person end def send_comment( c ) - if self.owner.nil? + if self.remote? if c.post.person.owner.nil? #puts "The commenter is not here, and neither is the poster" elsif c.post.person.owner @@ -114,6 +114,10 @@ class Person def self.by_webfinger( identifier ) Person.first(:email => identifier.gsub('acct:', '')) end + + def remote? + owner.nil? + end protected def clean_url diff --git a/app/models/user.rb b/app/models/user.rb index e35ec88cb..fcd45a268 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -174,7 +174,7 @@ class User Rails.logger.debug("Saving object: #{object}") object.save object.socket_to_uid( id) if object.respond_to? :socket_to_uid - object.person.send_comment object if object.is_a? Comment + object.person.send_comment object if object.is_a? Comment && owns? object end end From 91b0a1e8f9b3cc0e809b85de92560f552dc4246b Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 16 Aug 2010 13:51:49 -0700 Subject: [PATCH 09/15] PAAAARSER --- app/models/user.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index fcd45a268..88c77f929 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -174,7 +174,7 @@ class User Rails.logger.debug("Saving object: #{object}") object.save object.socket_to_uid( id) if object.respond_to? :socket_to_uid - object.person.send_comment object if object.is_a? Comment && owns? object + object.person.send_comment object if (object.is_a? Comment && self.owns?( object)) end end From 1f40ea23b62ea04ed11fe83964c5d8ba8f70ecc8 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 16 Aug 2010 13:58:05 -0700 Subject: [PATCH 10/15] logging is awesome --- app/models/comment.rb | 2 ++ app/models/person.rb | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/models/comment.rb b/app/models/comment.rb index 0323b0d6a..3b574f28f 100644 --- a/app/models/comment.rb +++ b/app/models/comment.rb @@ -22,10 +22,12 @@ class Comment validates_presence_of :text def push_upstream + Rails.logger.info("GOIN UPSTREAM") push_to([post.person]) end def push_downstream + Rails.logger.info("SWIMMIN DOWNSTREAM") push_to(post.people_with_permissions) end diff --git a/app/models/person.rb b/app/models/person.rb index fd601076f..01947bcd6 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -78,17 +78,17 @@ class Person def send_comment( c ) if self.remote? if c.post.person.owner.nil? - #puts "The commenter is not here, and neither is the poster" + Rails.logger.info "The commenter is not here, and neither is the poster" elsif c.post.person.owner - #puts "The commenter is not here, and the poster is" + Rails.logger.info "The commenter is not here, and the poster is" c.push_downstream end else if owns? c.post - #puts "The commenter is here, and is the poster" + Rails.logger.info "The commenter is here, and is the poster" c.push_downstream else - #puts "The commenter is here, and is not the poster" + Rails.logger.info "The commenter is here, and is not the poster" c.push_upstream end end From deeb4832c184d2616e4c2ebdc1a2351d29fd43db Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 16 Aug 2010 14:02:26 -0700 Subject: [PATCH 11/15] Error: insufficient parenthases --- app/models/user.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index 88c77f929..d59d10a82 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -174,7 +174,7 @@ class User Rails.logger.debug("Saving object: #{object}") object.save object.socket_to_uid( id) if object.respond_to? :socket_to_uid - object.person.send_comment object if (object.is_a? Comment && self.owns?( object)) + object.person.send_comment object if (object.is_a?(Comment) && self.owns?( object)) end end From b463958f0d9bc17317af3c0c1d8922d5b440249d Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 16 Aug 2010 14:06:52 -0700 Subject: [PATCH 12/15] Check ownership on the comment's post --- app/models/user.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index d59d10a82..ede993334 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -174,7 +174,7 @@ class User Rails.logger.debug("Saving object: #{object}") object.save object.socket_to_uid( id) if object.respond_to? :socket_to_uid - object.person.send_comment object if (object.is_a?(Comment) && self.owns?( object)) + object.person.send_comment object if (object.is_a?(Comment) && self.owns?( object.post)) end end From 71aaa9240c5470a7413487495f7d9d548e2b6a84 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 16 Aug 2010 14:18:08 -0700 Subject: [PATCH 13/15] only socket if the object isn't yours --- app/models/user.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index ede993334..aa4526edd 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -173,7 +173,7 @@ class User elsif object.verify_creator_signature == true Rails.logger.debug("Saving object: #{object}") object.save - object.socket_to_uid( id) if object.respond_to? :socket_to_uid + object.socket_to_uid( id) if (object.respond_to?(:socket_to_uid) && !self.owns?(object)) object.person.send_comment object if (object.is_a?(Comment) && self.owns?( object.post)) end end From e4af2ccb1fa4ce82087b4cb7dfb401b3cc7e6800 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 16 Aug 2010 14:22:14 -0700 Subject: [PATCH 14/15] Rename send_comment to dispatch_comment, simplify it --- app/models/person.rb | 23 ++++++----------------- app/models/user.rb | 2 +- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/app/models/person.rb b/app/models/person.rb index 01947bcd6..7e0c2d3bb 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -66,7 +66,7 @@ class Person raise "must comment on something!" unless options[:on] c = Comment.new(:person_id => self.id, :text => text, :post => options[:on]) if c.save - send_comment c + dispatch_comment c c.socket_to_uid owner.id if owner_id true else @@ -75,22 +75,11 @@ class Person false end - def send_comment( c ) - if self.remote? - if c.post.person.owner.nil? - Rails.logger.info "The commenter is not here, and neither is the poster" - elsif c.post.person.owner - Rails.logger.info "The commenter is not here, and the poster is" - c.push_downstream - end - else - if owns? c.post - Rails.logger.info "The commenter is here, and is the poster" - c.push_downstream - else - Rails.logger.info "The commenter is here, and is not the poster" - c.push_upstream - end + def dispatch_comment( c ) + if owns? c.post + push_downstream + elsif owns? c + c.push_upstream end end ##profile diff --git a/app/models/user.rb b/app/models/user.rb index aa4526edd..ac8a98d76 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -174,7 +174,7 @@ class User Rails.logger.debug("Saving object: #{object}") object.save object.socket_to_uid( id) if (object.respond_to?(:socket_to_uid) && !self.owns?(object)) - object.person.send_comment object if (object.is_a?(Comment) && self.owns?( object.post)) + object.person.dispatch_comment object if (object.is_a?(Comment) end end From fa2e621b0feeb838cb83fd1e23fbf1b3dc901ec8 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 16 Aug 2010 14:24:30 -0700 Subject: [PATCH 15/15] Syntax error --- app/models/user.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index ac8a98d76..d20c48bdb 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -174,7 +174,7 @@ class User Rails.logger.debug("Saving object: #{object}") object.save object.socket_to_uid( id) if (object.respond_to?(:socket_to_uid) && !self.owns?(object)) - object.person.dispatch_comment object if (object.is_a?(Comment) + object.person.dispatch_comment object if object.is_a?(Comment) end end