diff --git a/app/models/person.rb b/app/models/person.rb index c903e2db4..9c629ddf7 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -58,7 +58,7 @@ class Person model_class = class_name.to_s.camelize.constantize post = model_class.instantiate(options) post.notify_people - post.socket_to_uid person.owner.id if person.owner_id + post.socket_to_uid owner.id if owner_id post end @@ -68,7 +68,7 @@ class Person c = Comment.new(:person_id => self.id, :text => text, :post => options[:on]) if c.save send_comment c - c.socket_to_uid person.owner.id if person.owner_id + c.socket_to_uid owner.id if owner_id true else Rails.logger.warn "this failed to save: #{c.inspect}" diff --git a/app/models/post.rb b/app/models/post.rb index f41120698..e35b028cd 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -22,7 +22,7 @@ class Post timestamps! before_destroy :propagate_retraction - after_destroy :destroy_comments, :remove_from_view + after_destroy :destroy_comments def self.instantiate params self.create params diff --git a/app/models/retraction.rb b/app/models/retraction.rb index 5f506e61d..a42624bd2 100644 --- a/app/models/retraction.rb +++ b/app/models/retraction.rb @@ -24,12 +24,14 @@ class Retraction attr_accessor :person_id attr_accessor :type - def perform - Rails.logger.debug "Performing retraction for #{object.post_id}" + def perform receiving_user_id + Rails.logger.debug "Performing retraction for #{post_id}" begin return unless signature_valid? Rails.logger.debug("Retracting #{self.type} id: #{self.post_id}") - self.type.constantize.destroy(self.post_id) + target = self.type.constantize.first(self.post_id) + target.unsocket_from_uid receiving_user_id if target.respond_to? :unsocket_from_uid + target.destroy rescue NameError Rails.logger.info("Retraction for unknown type recieved.") end diff --git a/app/models/user.rb b/app/models/user.rb index 56a939fc7..730f3099a 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -124,8 +124,7 @@ class User Rails.logger.debug("Receiving object:\n#{object.inspect}") if object.is_a? Retraction - object.post.unsocket_from_uid self.id - object.perform + object.perform self.id elsif object.is_a? Request person = Diaspora::Parser.get_or_create_person_object_from_xml( xml ) @@ -141,7 +140,7 @@ class User person.save else Rails.logger.debug("Saving object with success: #{object.save}") - object.socket_to_uid id + object.socket_to_uid( id) if object.respond_to? :socket_to_uid end end