logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: af00220d795670e10bc8c7378837c4a5a287b556
parent: 9239e4ce4d4e958e62552d4a01183d0295c020f5
Author: ThibG <thib@sitedethib.com>
Date:   Thu, 14 Sep 2017 00:05:25 +0200

Fix refollowing (#4931)

* Make RefollowWorker ActivityPub-only to avoid potential identifier mismatches

* Don't call RefollowWorker on new accounts

Diffstat:

Mapp/services/activitypub/process_account_service.rb4++--
Mapp/services/resolve_remote_account_service.rb2--
Mapp/workers/refollow_worker.rb1+
3 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb @@ -15,11 +15,11 @@ class ActivityPub::ProcessAccountService < BaseService @account = Account.find_by(uri: @uri) @collections = {} + old_public_key = @account&.public_key create_account if @account.nil? upgrade_account if @account.ostatus? - old_public_key = @account.public_key update_account - RefollowWorker.perform_async(@account.id) if old_public_key != @account.public_key + RefollowWorker.perform_async(@account.id) if !old_public_key.nil? && old_public_key != @account.public_key @account rescue Oj::ParseError diff --git a/app/services/resolve_remote_account_service.rb b/app/services/resolve_remote_account_service.rb @@ -85,10 +85,8 @@ class ResolveRemoteAccountService < BaseService def handle_ostatus create_account if @account.nil? - old_public_key = @account.public_key update_account update_account_profile if update_profile? - RefollowWorker.perform_async(@account.id) if old_public_key != @account.public_key end def update_profile? diff --git a/app/workers/refollow_worker.rb b/app/workers/refollow_worker.rb @@ -7,6 +7,7 @@ class RefollowWorker def perform(target_account_id) target_account = Account.find(target_account_id) + return unless target_account.protocol == :activitypub target_account.followers.where(domain: nil).find_each do |follower| # Locally unfollow remote account