Fix TagFollow records not being correctly handled in account operations (#33063)
Some checks are pending
Check i18n / check-i18n (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (ruby) (push) Waiting to run
Check formatting / lint (push) Waiting to run
CSS Linting / lint (push) Waiting to run
JavaScript Linting / lint (push) Waiting to run
Ruby Linting / lint (push) Waiting to run
JavaScript Testing / test (push) Waiting to run
Historical data migration test / test (14-alpine) (push) Waiting to run
Historical data migration test / test (15-alpine) (push) Waiting to run
Historical data migration test / test (16-alpine) (push) Waiting to run
Historical data migration test / test (17-alpine) (push) Waiting to run
Ruby Testing / build (production) (push) Waiting to run
Ruby Testing / build (test) (push) Waiting to run
Ruby Testing / test (.ruby-version) (push) Blocked by required conditions
Ruby Testing / test (3.2) (push) Blocked by required conditions
Ruby Testing / Libvips tests (.ruby-version) (push) Blocked by required conditions
Ruby Testing / Libvips tests (3.2) (push) Blocked by required conditions
Ruby Testing / End to End testing (.ruby-version) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:8.10.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, opensearchproject/opensearch:2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.2, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions

This commit is contained in:
Claire 2024-11-25 11:27:58 +01:00 committed by GitHub
parent 1a88c05274
commit 2d8fed23e6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 7 additions and 1 deletions

View File

@ -88,6 +88,9 @@ module Account::Interactions
has_many :remote_severed_relationships, foreign_key: 'remote_account_id', inverse_of: :remote_account has_many :remote_severed_relationships, foreign_key: 'remote_account_id', inverse_of: :remote_account
end end
# 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 Account::Merging
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

@ -50,6 +50,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

@ -43,6 +43,7 @@ module Mastodon::CLI
class BulkImport < ApplicationRecord; end class BulkImport < ApplicationRecord; end
class SoftwareUpdate < ApplicationRecord; end class SoftwareUpdate < ApplicationRecord; end
class SeveredRelationship < ApplicationRecord; end class SeveredRelationship < ApplicationRecord; end
class TagFollow < ApplicationRecord; end
class DomainBlock < ApplicationRecord class DomainBlock < ApplicationRecord
enum :severity, { silence: 0, suspend: 1, noop: 2 } 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 << AccountIdentityProof if db_table_exists?(:account_identity_proofs)
owned_classes << Appeal if db_table_exists?(:appeals) owned_classes << Appeal if db_table_exists?(:appeals)
owned_classes << BulkImport if db_table_exists?(:bulk_imports) owned_classes << BulkImport if db_table_exists?(:bulk_imports)
owned_classes << TagFollow if db_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|