From 0a396b16b1ada289ef0fa9656c89dad16ee05a33 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Thu, 9 Aug 2012 08:55:55 -0600 Subject: [PATCH] only delete object of relayable retraction after it has been relayed or federated --- app/models/relayable_retraction.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/models/relayable_retraction.rb b/app/models/relayable_retraction.rb index c5fdf7290..a055b5eb9 100644 --- a/app/models/relayable_retraction.rb +++ b/app/models/relayable_retraction.rb @@ -33,6 +33,15 @@ class RelayableRetraction < SignedRetraction true 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) if self.target.nil? Rails.logger.info("event=retraction status=abort reason='no post found' sender=#{sender.diaspora_handle} target_guid=#{target_guid}")