commit: a3b2ea599df58b1d9944acba8b59f9a465f5adbd
parent: 573414f728b5406e2f402f3c21e8ffa38ffc6d8e
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Thu, 14 Dec 2017 21:35:30 +0100
Fix #6022 - Prevent nested migrated accounts, or migrations to self (#6026)
Diffstat:
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/app/controllers/settings/migrations_controller.rb b/app/controllers/settings/migrations_controller.rb
@@ -28,6 +28,7 @@ class Settings::MigrationsController < ApplicationController
end
def migration_account_changed?
- current_account.moved_to_account_id != @migration.account&.id
+ current_account.moved_to_account_id != @migration.account&.id &&
+ current_account.id != @migration.account&.id
end
end
diff --git a/app/serializers/rest/account_serializer.rb b/app/serializers/rest/account_serializer.rb
@@ -7,9 +7,7 @@ class REST::AccountSerializer < ActiveModel::Serializer
:note, :url, :avatar, :avatar_static, :header, :header_static,
:followers_count, :following_count, :statuses_count
- has_one :moved_to_account, key: :moved, serializer: REST::AccountSerializer, if: :moved?
-
- delegate :moved?, to: :object
+ has_one :moved_to_account, key: :moved, serializer: REST::AccountSerializer, if: :moved_and_not_nested?
def id
object.id.to_s
@@ -38,4 +36,8 @@ class REST::AccountSerializer < ActiveModel::Serializer
def header_static
full_asset_url(object.header_static_url)
end
+
+ def moved_and_not_nested?
+ object.moved? && object.moved_to_account.moved_to_account_id.nil?
+ end
end