diff --git a/app/models/relayable_retraction.rb b/app/models/relayable_retraction.rb index c5fdf7290fedd613a2deedd900bde86251bb7e3f..a055b5eb986efcdf104ca6b166d17dce89542471 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}")