send_friend_request_to now takes a person and group, rather than a receive url and a group id
This commit is contained in:
parent
d0de8b4988
commit
86d9a41d25
15 changed files with 27 additions and 43 deletions
|
|
@ -30,7 +30,7 @@ def warzombie
|
|||
backer_email = "#{backer['username']}@#{backer['username']}.joindiaspora.com"
|
||||
rel_hash = relationship_flow(backer_email)
|
||||
logger.info "Zombefriending #{backer['given_name']} #{backer['family_name']}"
|
||||
current_user.send_request(rel_hash, current_user.groups.first.id)
|
||||
current_user.send_friend_request_to(rel_hash[:friend], current_user.groups.first.id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@ class PublicsController < ApplicationController
|
|||
Rails.logger.error("Received post #{params[:xml]} for nonexistent person #{params[:id]}")
|
||||
return
|
||||
end
|
||||
puts params[:xml]
|
||||
if params[:xml].include? "xml version='1.0'"
|
||||
@user.receive_salmon params[:xml]
|
||||
else
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class RequestsController < ApplicationController
|
|||
Rails.logger.debug("Sending request: #{rel_hash}")
|
||||
|
||||
begin
|
||||
@request = current_user.send_request(rel_hash, params[:request][:group_id])
|
||||
@request = current_user.send_friend_request_to(rel_hash[:friend], group)
|
||||
rescue Exception => e
|
||||
raise e unless e.message.include? "already friends"
|
||||
message = "You are already friends with #{params[:request][:destination_url]}!"
|
||||
|
|
|
|||
|
|
@ -27,17 +27,12 @@ module RequestsHelper
|
|||
|
||||
def relationship_flow(identifier)
|
||||
action = :none
|
||||
url = nil
|
||||
local_person = Person.by_webfinger identifier
|
||||
if local_person
|
||||
action = (local_person == current_user.person ? :none : :friend)
|
||||
url = local_person.receive_url
|
||||
elsif !(identifier.include?(request.host) || identifier.include?("localhost"))
|
||||
f = Redfinger.finger(identifier)
|
||||
action = subscription_mode(f)
|
||||
url = subscription_url(action, f)
|
||||
person = nil
|
||||
person = Person.by_webfinger identifier
|
||||
if person
|
||||
action = (person == current_user.person ? :none : :friend)
|
||||
end
|
||||
{ action => url }
|
||||
{ action => person }
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -25,6 +25,6 @@ user2.person.save!
|
|||
|
||||
# friending users
|
||||
group = user.group(:name => "other dudes")
|
||||
request = user.send_friend_request_to(user2.receive_url, group.id)
|
||||
request = user.send_friend_request_to(user2, group)
|
||||
reversed_request = user2.accept_friend_request( request.id, user2.group(:name => "presidents").id )
|
||||
user.receive reversed_request.to_diaspora_xml
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ user2.person.save!
|
|||
|
||||
# friending users
|
||||
group = user.group(:name => "other dudes")
|
||||
request = user.send_friend_request_to(user2.receive_url, group.id)
|
||||
request = user.send_friend_request_to(user2, group)
|
||||
reversed_request = user2.accept_friend_request( request.id, user2.group(:name => "presidents").id )
|
||||
user.receive reversed_request.to_diaspora_xml
|
||||
user.group(:name => "Presidents")
|
||||
|
|
|
|||
|
|
@ -1,19 +1,17 @@
|
|||
module Diaspora
|
||||
module UserModules
|
||||
module Friending
|
||||
def send_friend_request_to(friend_url, group_id)
|
||||
raise "You are already friends with that person!" if self.friends.detect{ |x| x.receive_url == friend_url}
|
||||
request = Request.instantiate(:to => friend_url, :from => self.person, :into => group_id)
|
||||
def send_friend_request_to(friend, group)
|
||||
raise "You are already friends with that person!" if self.friends.detect{ |x| x.receive_url == friend.receive_url}
|
||||
request = Request.instantiate(:to => friend.receive_url, :from => self.person, :into => group.id)
|
||||
if request.save
|
||||
self.pending_requests << request
|
||||
self.save
|
||||
|
||||
group = self.group_by_id(group_id)
|
||||
|
||||
group.requests << request
|
||||
group.save
|
||||
|
||||
request.push_to_url friend_url
|
||||
request.push_to_url friend.receive_url
|
||||
end
|
||||
request
|
||||
end
|
||||
|
|
@ -101,14 +99,6 @@ module Diaspora
|
|||
remove_friend bad_friend
|
||||
end
|
||||
|
||||
def send_request(rel_hash, group)
|
||||
if rel_hash[:friend]
|
||||
self.send_friend_request_to(rel_hash[:friend], group)
|
||||
else
|
||||
raise "you can't do anything to that url"
|
||||
end
|
||||
end
|
||||
|
||||
def activate_friend(person, group)
|
||||
person.user_refs += 1
|
||||
group.people << person
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ describe PublicsController do
|
|||
|
||||
@user3 = Factory.create(:user)
|
||||
|
||||
req = @user2.send_friend_request_to(@user.person.url, group.id)
|
||||
req = @user2.send_friend_request_to(@user.person, group)
|
||||
|
||||
@xml = req.to_diaspora_xml
|
||||
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ describe Diaspora::Parser do
|
|||
end
|
||||
|
||||
it "should activate the Person if I initiated a request to that url" do
|
||||
request = @user.send_friend_request_to( @user2.receive_url, @group.id)
|
||||
request = @user.send_friend_request_to( @user2.person, @group)
|
||||
|
||||
request.reverse_for @user2
|
||||
|
||||
|
|
@ -118,7 +118,7 @@ describe Diaspora::Parser do
|
|||
|
||||
it 'should process retraction for a person' do
|
||||
person_count = Person.all.count
|
||||
request = @user.send_friend_request_to( @user2.receive_url, @group.id)
|
||||
request = @user.send_friend_request_to( @user2.person, @group)
|
||||
request.reverse_for @user2
|
||||
xml = request.to_diaspora_xml
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ describe Comment do
|
|||
before do
|
||||
|
||||
|
||||
request = @user.send_friend_request_to(@user2.receive_url, @group.id)
|
||||
request = @user.send_friend_request_to(@user2, @group)
|
||||
reversed_request = @user2.accept_friend_request( request.id, @group2.id )
|
||||
@user.receive reversed_request.to_diaspora_xml
|
||||
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ describe Person do
|
|||
|
||||
describe "unfriending" do
|
||||
it 'should delete an orphaned friend' do
|
||||
request = @user.send_friend_request_to @person.receive_url, @group.id
|
||||
request = @user.send_friend_request_to @person, @group
|
||||
|
||||
@user.activate_friend(@person, @group)
|
||||
@user.reload
|
||||
|
|
@ -74,8 +74,8 @@ describe Person do
|
|||
end
|
||||
|
||||
it 'should not delete an un-orphaned friend' do
|
||||
request = @user.send_friend_request_to @person.receive_url, @group.id
|
||||
request2 = @user2.send_friend_request_to @person.receive_url, @group2.id
|
||||
request = @user.send_friend_request_to @person, @group
|
||||
request2 = @user2.send_friend_request_to @person, @group2
|
||||
|
||||
@user.activate_friend(@person, @group)
|
||||
@user2.activate_friend(@person, @group2)
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ describe Request do
|
|||
|
||||
it 'should generate xml for the User as a Person' do
|
||||
|
||||
request = @user.send_friend_request_to "http://www.google.com/", @group.id
|
||||
request = @user.send_friend_request_to Factory.create(:person), @group
|
||||
|
||||
xml = request.to_xml.to_s
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ describe User do
|
|||
group = @user.group(:name => "Dudes")
|
||||
group.requests.size.should == 0
|
||||
|
||||
@user.send_friend_request_to(friend.receive_url, group.id)
|
||||
@user.send_friend_request_to(friend, group)
|
||||
|
||||
group.reload
|
||||
group.requests.size.should == 1
|
||||
|
|
@ -48,7 +48,7 @@ describe User do
|
|||
@user.save
|
||||
|
||||
|
||||
proc {@user.send_friend_request_to( friend.receive_url, @group.id )}.should raise_error
|
||||
proc {@user.send_friend_request_to( friend, @group)}.should raise_error
|
||||
end
|
||||
|
||||
|
||||
|
|
@ -183,7 +183,7 @@ describe User do
|
|||
@user2 = Factory.create :user
|
||||
@group2 = @user2.group(:name => "Gross people")
|
||||
|
||||
request = @user.send_friend_request_to( @user2.receive_url, @group.id)
|
||||
request = @user.send_friend_request_to( @user2, @group)
|
||||
request.reverse_for @user2
|
||||
@user2.activate_friend(@user.person, @group2)
|
||||
@user.receive request.to_diaspora_xml
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ end
|
|||
end
|
||||
|
||||
def friend_users(user1, group1, user2, group2)
|
||||
request = user1.send_friend_request_to(user2.receive_url, group1.id)
|
||||
request = user1.send_friend_request_to(user2.person, group1)
|
||||
reversed_request = user2.accept_friend_request( request.id, group2.id)
|
||||
user1.receive reversed_request.to_diaspora_xml
|
||||
end
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ describe 'user encryption' do
|
|||
describe 'key exchange on friending' do
|
||||
it 'should send over a public key' do
|
||||
message_queue.stub!(:add_post_request)
|
||||
request = @user.send_friend_request_to("http://example.com/", @group.id)
|
||||
request = @user.send_friend_request_to(Factory.create(:person), @group)
|
||||
request.to_diaspora_xml.include?( @user.exported_key).should be true
|
||||
end
|
||||
|
||||
|
|
@ -44,7 +44,7 @@ describe 'user encryption' do
|
|||
original_key = remote_user.exported_key
|
||||
|
||||
request = remote_user.send_friend_request_to(
|
||||
@user.receive_url, remote_user.group(:name => "temp").id)
|
||||
@user.person, remote_user.group(:name => "temp"))
|
||||
|
||||
xml = request.to_diaspora_xml
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue