Merge branch 'master' of github.com:diaspora/diaspora
This commit is contained in:
commit
dba8e2efe6
5 changed files with 10 additions and 17 deletions
|
|
@ -48,7 +48,6 @@ class User
|
||||||
to_group = self.group_by_id(opts[:to])
|
to_group = self.group_by_id(opts[:to])
|
||||||
if from_group && to_group
|
if from_group && to_group
|
||||||
posts_to_move = from_group.posts.find_all_by_person_id(friend.id)
|
posts_to_move = from_group.posts.find_all_by_person_id(friend.id)
|
||||||
puts posts_to_move.inspect
|
|
||||||
to_group.people << friend
|
to_group.people << friend
|
||||||
to_group.posts << posts_to_move
|
to_group.posts << posts_to_move
|
||||||
from_group.person_ids.delete(friend.id.to_id)
|
from_group.person_ids.delete(friend.id.to_id)
|
||||||
|
|
@ -167,7 +166,6 @@ class User
|
||||||
object = Diaspora::Parser.from_xml(xml)
|
object = Diaspora::Parser.from_xml(xml)
|
||||||
Rails.logger.debug("Receiving object:\n#{object.inspect}")
|
Rails.logger.debug("Receiving object:\n#{object.inspect}")
|
||||||
Rails.logger.debug("From: #{object.person.inspect}") if object.person
|
Rails.logger.debug("From: #{object.person.inspect}") if object.person
|
||||||
object.person.save if object.is_a?(Comment) && Person.find_by_id(object.person_id).nil?
|
|
||||||
raise "In receive for #{self.real_name}, signature was not valid on: #{object.inspect}" unless object.signature_valid?
|
raise "In receive for #{self.real_name}, signature was not valid on: #{object.inspect}" unless object.signature_valid?
|
||||||
if object.is_a? Retraction
|
if object.is_a? Retraction
|
||||||
if object.type == 'Person' && object.signature_valid?
|
if object.type == 'Person' && object.signature_valid?
|
||||||
|
|
@ -183,7 +181,7 @@ class User
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
elsif object.is_a? Request
|
elsif object.is_a? Request
|
||||||
person = Diaspora::Parser.get_or_create_person_object_from_xml( xml )
|
person = Diaspora::Parser.parse_or_find_person_from_xml( xml )
|
||||||
person.serialized_key ||= object.exported_key
|
person.serialized_key ||= object.exported_key
|
||||||
object.person = person
|
object.person = person
|
||||||
object.person.save
|
object.person.save
|
||||||
|
|
@ -197,6 +195,9 @@ class User
|
||||||
person.save
|
person.save
|
||||||
|
|
||||||
elsif object.is_a?(Comment)
|
elsif object.is_a?(Comment)
|
||||||
|
object.person = Diaspora::Parser.parse_or_find_person_from_xml( xml ).save if object.person.nil?
|
||||||
|
object.person.save
|
||||||
|
Rails.logger.debug("From: #{object.person.inspect}") if object.person
|
||||||
raise "In receive for #{self.real_name}, signature was not valid on: #{object.inspect}" unless object.post.person == self.person || object.verify_post_creator_signature
|
raise "In receive for #{self.real_name}, signature was not valid on: #{object.inspect}" unless object.post.person == self.person || object.verify_post_creator_signature
|
||||||
object.save
|
object.save
|
||||||
dispatch_comment object unless owns?(object)
|
dispatch_comment object unless owns?(object)
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,10 @@ module Diaspora
|
||||||
Person.first(:id => id)
|
Person.first(:id => id)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.get_or_create_person_object_from_xml(xml)
|
def self.parse_or_find_person_from_xml(xml)
|
||||||
doc = Nokogiri::XML(xml) { |cfg| cfg.noblanks }
|
doc = Nokogiri::XML(xml) { |cfg| cfg.noblanks }
|
||||||
person_xml = doc.xpath("//request/person").to_s
|
person_xml = doc.xpath("//person").to_s
|
||||||
person_id = doc.xpath("//request/person/_id").text.to_s
|
person_id = doc.xpath("//person/_id").text.to_s
|
||||||
person = Person.first(:_id => person_id)
|
person = Person.first(:_id => person_id)
|
||||||
person ? person : Person.from_xml( person_xml)
|
person ? person : Person.from_xml( person_xml)
|
||||||
end
|
end
|
||||||
|
|
@ -36,6 +36,5 @@ module Diaspora
|
||||||
raise e
|
raise e
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -40,14 +40,7 @@ describe User do
|
||||||
|
|
||||||
@user.groups.size.should == num_groups
|
@user.groups.size.should == num_groups
|
||||||
end
|
end
|
||||||
describe 'comments' do
|
|
||||||
it 'should receive comments from unknown users' do
|
|
||||||
friend_users(@user, @group, @user2, @group2)
|
|
||||||
|
|
||||||
status_message = @user.post, :status_message, :message => 'message', :to => @group.id
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
||||||
describe 'post refs' do
|
describe 'post refs' do
|
||||||
before do
|
before do
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ end
|
||||||
|
|
||||||
def stub_signature_verification
|
def stub_signature_verification
|
||||||
(get_models.map{|model| model.camelize.constantize} - [User]).each do |model|
|
(get_models.map{|model| model.camelize.constantize} - [User]).each do |model|
|
||||||
model.any_instance.stubs(:signature_valid?).returns(true)
|
model.any_instance.stubs(:verify_signature).returns(true)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ describe 'user encryption' do
|
||||||
remote_user.destroy
|
remote_user.destroy
|
||||||
|
|
||||||
person_count = Person.all.count
|
person_count = Person.all.count
|
||||||
proc {@user.receive xml}.should_not raise_error /Signature was not valid/
|
proc {@user.receive xml}.should_not raise_error /ignature was not valid/
|
||||||
Person.all.count.should == person_count + 1
|
Person.all.count.should == person_count + 1
|
||||||
new_person = Person.first(:id => id)
|
new_person = Person.first(:id => id)
|
||||||
new_person.export_key.should == original_key
|
new_person.export_key.should == original_key
|
||||||
|
|
@ -125,7 +125,7 @@ describe 'user encryption' do
|
||||||
xml = message.to_diaspora_xml
|
xml = message.to_diaspora_xml
|
||||||
message.destroy
|
message.destroy
|
||||||
Post.count.should be 0
|
Post.count.should be 0
|
||||||
proc {@user.receive xml}.should raise_error /Signature was not valid/
|
proc {@user.receive xml}.should raise_error /ignature was not valid/
|
||||||
Post.count.should be 0
|
Post.count.should be 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue