0
0
Fork 0

Fix various issues with account migration (#12301)

* Fix being able to follow oneself by moving to an account that was following the old one

* Add specs

* Add spec to catch MoveWorker issue with local followers following both accounts

* Fix move worker breaking when a local account follows both source and target accounts

* Fix migration from remote to local account not sending Undo Follow

* Fix show_reblogs not being preserved for moved account's followers
This commit is contained in:
ThibG 2019-11-07 08:05:07 +01:00 committed by Eugen Rochko
parent 699427777a
commit 66c1fe0495
5 changed files with 126 additions and 6 deletions

View file

@ -5,12 +5,15 @@ class UnfollowFollowWorker
sidekiq_options queue: 'pull'
def perform(follower_account_id, old_target_account_id, new_target_account_id)
def perform(follower_account_id, old_target_account_id, new_target_account_id, bypass_locked = false)
follower_account = Account.find(follower_account_id)
old_target_account = Account.find(old_target_account_id)
new_target_account = Account.find(new_target_account_id)
FollowService.new.call(follower_account, new_target_account)
follow = follower_account.active_relationships.find_by(target_account: old_target_account)
reblogs = follow&.show_reblogs?
FollowService.new.call(follower_account, new_target_account, reblogs: reblogs, bypass_locked: bypass_locked)
UnfollowService.new.call(follower_account, old_target_account, skip_unmerge: true)
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
true