diff options
author | ThibG <thib@sitedethib.com> | 2019-01-18 15:56:55 +0100 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2019-01-18 15:56:55 +0100 |
commit | 75b1488cf4dfe54260deff8df20e5e9b9fd90aea (patch) | |
tree | da5c67eabed97c45a55d6943a203a8fec8683095 /app/services | |
parent | 31f396b57dea684685d0affc3727a75eed2f38c9 (diff) |
Add tombstones for remote statuses (#9830)
* Add Tombstone model to remember object deletion * Do not recreate a status if it has been deleted * Record Tombstone for remote deleted items Also, only record deleted items from same-host actors * Clear an user's tombstones when their key change
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/activitypub/process_account_service.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb index d6c791b44..487456f3a 100644 --- a/app/services/activitypub/process_account_service.rb +++ b/app/services/activitypub/process_account_service.rb @@ -33,6 +33,8 @@ class ActivityPub::ProcessAccountService < BaseService after_protocol_change! if protocol_changed? after_key_change! if key_changed? && !@options[:signed_with_known_key] + clear_tombstones! if key_changed? + unless @options[:only_key] check_featured_collection! if @account.featured_collection_url.present? check_links! unless @account.fields.empty? @@ -209,6 +211,10 @@ class ActivityPub::ProcessAccountService < BaseService !@old_public_key.nil? && @old_public_key != @account.public_key end + def clear_tombstones! + Tombstone.delete_all(account_id: @account.id) + end + def protocol_changed? !@old_protocol.nil? && @old_protocol != @account.protocol end |