Fix TagFollow records not being correctly handled in account operations (#33063)
				
					
				
			This commit is contained in:
		@@ -88,6 +88,9 @@ module Account::Interactions
 | 
			
		||||
      has_many :remote_severed_relationships, foreign_key: 'remote_account_id', inverse_of: :remote_account
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Hashtag follows
 | 
			
		||||
    has_many :tag_follows, inverse_of: :account, dependent: :destroy
 | 
			
		||||
 | 
			
		||||
    # Account notes
 | 
			
		||||
    has_many :account_notes, dependent: :destroy
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@ module Account::Merging
 | 
			
		||||
      Follow, FollowRequest, Block, Mute,
 | 
			
		||||
      AccountModerationNote, AccountPin, AccountStat, ListAccount,
 | 
			
		||||
      PollVote, Mention, AccountDeletionRequest, AccountNote, FollowRecommendationSuppression,
 | 
			
		||||
      Appeal
 | 
			
		||||
      Appeal, TagFollow
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    owned_classes.each do |klass|
 | 
			
		||||
 
 | 
			
		||||
@@ -50,6 +50,7 @@ class DeleteAccountService < BaseService
 | 
			
		||||
    owned_lists
 | 
			
		||||
    scheduled_statuses
 | 
			
		||||
    status_pins
 | 
			
		||||
    tag_follows
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
  ASSOCIATIONS_ON_DESTROY = %w(
 | 
			
		||||
 
 | 
			
		||||
@@ -43,6 +43,7 @@ module Mastodon::CLI
 | 
			
		||||
    class BulkImport < ApplicationRecord; end
 | 
			
		||||
    class SoftwareUpdate < ApplicationRecord; end
 | 
			
		||||
    class SeveredRelationship < ApplicationRecord; end
 | 
			
		||||
    class TagFollow < ApplicationRecord; end
 | 
			
		||||
 | 
			
		||||
    class DomainBlock < ApplicationRecord
 | 
			
		||||
      enum :severity, { silence: 0, suspend: 1, noop: 2 }
 | 
			
		||||
@@ -102,6 +103,7 @@ module Mastodon::CLI
 | 
			
		||||
        owned_classes << AccountIdentityProof if db_table_exists?(:account_identity_proofs)
 | 
			
		||||
        owned_classes << Appeal if db_table_exists?(:appeals)
 | 
			
		||||
        owned_classes << BulkImport if db_table_exists?(:bulk_imports)
 | 
			
		||||
        owned_classes << TagFollow if db_table_exists?(:tag_follows)
 | 
			
		||||
 | 
			
		||||
        owned_classes.each do |klass|
 | 
			
		||||
          klass.where(account_id: other_account.id).find_each do |record|
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user