Fix TagFollow records not being correctly handled in account operations (#33063)

This commit is contained in:
Claire 2024-11-28 15:32:27 +01:00
parent e26bb6f827
commit fd431c0afb
4 changed files with 7 additions and 1 deletions

View file

@ -83,6 +83,9 @@ module AccountInteractions
has_many :following, -> { order('follows.id desc') }, through: :active_relationships, source: :target_account has_many :following, -> { order('follows.id desc') }, through: :active_relationships, source: :target_account
has_many :followers, -> { order('follows.id desc') }, through: :passive_relationships, source: :account has_many :followers, -> { order('follows.id desc') }, through: :passive_relationships, source: :account
# Hashtag follows
has_many :tag_follows, inverse_of: :account, dependent: :destroy
# Account notes # Account notes
has_many :account_notes, dependent: :destroy has_many :account_notes, dependent: :destroy

View file

@ -16,7 +16,7 @@ module AccountMerging
Follow, FollowRequest, Block, Mute, Follow, FollowRequest, Block, Mute,
AccountModerationNote, AccountPin, AccountStat, ListAccount, AccountModerationNote, AccountPin, AccountStat, ListAccount,
PollVote, Mention, AccountDeletionRequest, AccountNote, FollowRecommendationSuppression, PollVote, Mention, AccountDeletionRequest, AccountNote, FollowRecommendationSuppression,
Appeal Appeal, TagFollow
] ]
owned_classes.each do |klass| owned_classes.each do |klass|

View file

@ -52,6 +52,7 @@ class DeleteAccountService < BaseService
owned_lists owned_lists
scheduled_statuses scheduled_statuses
status_pins status_pins
tag_follows
) )
ASSOCIATIONS_ON_DESTROY = %w( ASSOCIATIONS_ON_DESTROY = %w(

View file

@ -39,6 +39,7 @@ module Mastodon::CLI
class Webhook < ApplicationRecord; end class Webhook < ApplicationRecord; end
class BulkImport < ApplicationRecord; end class BulkImport < ApplicationRecord; end
class SoftwareUpdate < ApplicationRecord; end class SoftwareUpdate < ApplicationRecord; end
class TagFollow < ApplicationRecord; end
class PreviewCard < ApplicationRecord class PreviewCard < ApplicationRecord
self.inheritance_column = false self.inheritance_column = false
@ -89,6 +90,7 @@ module Mastodon::CLI
owned_classes << AccountIdentityProof if ActiveRecord::Base.connection.table_exists?(:account_identity_proofs) owned_classes << AccountIdentityProof if ActiveRecord::Base.connection.table_exists?(:account_identity_proofs)
owned_classes << Appeal if ActiveRecord::Base.connection.table_exists?(:appeals) owned_classes << Appeal if ActiveRecord::Base.connection.table_exists?(:appeals)
owned_classes << BulkImport if ActiveRecord::Base.connection.table_exists?(:bulk_imports) owned_classes << BulkImport if ActiveRecord::Base.connection.table_exists?(:bulk_imports)
owned_classes << TagFollow if ActiveRecord::Base.connection.table_exists?(:tag_follows)
owned_classes.each do |klass| owned_classes.each do |klass|
klass.where(account_id: other_account.id).find_each do |record| klass.where(account_id: other_account.id).find_each do |record|