Reattribute notification-related records if possible when merging accounts (#29694)
parent
de6c9e0fcd
commit
d71d26a3c9
|
@ -27,6 +27,16 @@ module Account::Merging
|
|||
end
|
||||
end
|
||||
|
||||
[
|
||||
Notification, NotificationPermission, NotificationRequest
|
||||
].each do |klass|
|
||||
klass.where(from_account_id: other_account.id).reorder(nil).find_each do |record|
|
||||
record.update_attribute(:from_account_id, id)
|
||||
rescue ActiveRecord::RecordNotUnique
|
||||
next
|
||||
end
|
||||
end
|
||||
|
||||
target_classes = [
|
||||
Follow, FollowRequest, Block, Mute, AccountModerationNote, AccountPin,
|
||||
AccountNote
|
||||
|
|
|
@ -26,6 +26,9 @@ module Mastodon::CLI
|
|||
class ListAccount < ApplicationRecord; end
|
||||
class PollVote < ApplicationRecord; end
|
||||
class Mention < ApplicationRecord; end
|
||||
class Notification < ApplicationRecord; end
|
||||
class NotificationPermission < ApplicationRecord; end
|
||||
class NotificationRequest < ApplicationRecord; end
|
||||
class AccountDomainBlock < ApplicationRecord; end
|
||||
class AnnouncementReaction < ApplicationRecord; end
|
||||
class FeaturedTag < ApplicationRecord; end
|
||||
|
@ -108,6 +111,18 @@ module Mastodon::CLI
|
|||
end
|
||||
end
|
||||
|
||||
from_classes = [Notification]
|
||||
from_classes << NotificationPermission if db_table_exists?(:notification_permissions)
|
||||
from_classes << NotificationRequest if db_table_exists?(:notification_requests)
|
||||
|
||||
from_classes.each do |klass|
|
||||
klass.where(from_account_id: other_account.id).find_each do |record|
|
||||
record.update_attribute(:from_account_id, id)
|
||||
rescue ActiveRecord::RecordNotUnique
|
||||
next
|
||||
end
|
||||
end
|
||||
|
||||
target_classes = [Follow, FollowRequest, Block, Mute, AccountModerationNote, AccountPin]
|
||||
target_classes << AccountNote if db_table_exists?(:account_notes)
|
||||
|
||||
|
|
Loading…
Reference in New Issue