only delete object of relayable retraction after it has been relayed or federated

This commit is contained in:
Zach Prezkuta 2012-08-09 08:55:55 -06:00
parent d331a14dd2
commit 0a396b16b1

View file

@ -33,6 +33,15 @@ class RelayableRetraction < SignedRetraction
true true
end end
def perform receiving_user
Rails.logger.debug "Performing relayable retraction for #{target_guid}"
if not self.parent_author_signature.nil? or self.parent.author.remote?
# Don't destroy a relayable unless the top-level owner has received it, otherwise it may not get relayed
self.target.destroy
Rails.logger.info("event=relayable_retraction status =complete target_type=#{self.target_type} guid =#{self.target_guid}")
end
end
def receive(recipient, sender) def receive(recipient, sender)
if self.target.nil? if self.target.nil?
Rails.logger.info("event=retraction status=abort reason='no post found' sender=#{sender.diaspora_handle} target_guid=#{target_guid}") Rails.logger.info("event=retraction status=abort reason='no post found' sender=#{sender.diaspora_handle} target_guid=#{target_guid}")