logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: 1b57d4dd3a64cdafd74a12ff67502795b06a4eb2
parent: d937a59997f60e9aa7a022d84792fc50473bf3d5
Author: nullkal <nullkal@nil.nu>
Date:   Tue, 28 Nov 2017 22:31:23 +0900

Fix account migration feature (#5837)

* Make removable account migration

* Fix error during update of account migration setting

* Add notice when update account migration setting

Diffstat:

Mapp/controllers/settings/migrations_controller.rb15++++++++-------
Mapp/models/form/migration.rb4+---
Mconfig/locales/en.yml1+
3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/app/controllers/settings/migrations_controller.rb b/app/controllers/settings/migrations_controller.rb @@ -12,13 +12,10 @@ class Settings::MigrationsController < ApplicationController def update @migration = Form::Migration.new(resource_params) - if @migration.valid? - if current_account.moved_to_account_id != @migration.account&.id - current_account.update!(moved_to_account: @migration.account) - ActivityPub::UpdateDistributionWorker.perform_async(@account.id) - end - - redirect_to settings_migration_path + if @migration.valid? && migration_account_changed? + current_account.update!(moved_to_account: @migration.account) + ActivityPub::UpdateDistributionWorker.perform_async(current_account.id) + redirect_to settings_migration_path, notice: I18n.t('migrations.updated_msg') else render :show end @@ -29,4 +26,8 @@ class Settings::MigrationsController < ApplicationController def resource_params params.require(:migration).permit(:acct) end + + def migration_account_changed? + current_account.moved_to_account_id != @migration.account&.id + end end diff --git a/app/models/form/migration.rb b/app/models/form/migration.rb @@ -5,8 +5,6 @@ class Form::Migration attr_accessor :acct, :account - validates :acct, presence: true - def initialize(attrs = {}) @account = attrs[:account] @acct = attrs[:account].acct unless @account.nil? @@ -22,6 +20,6 @@ class Form::Migration private def set_account - self.account = ResolveRemoteAccountService.new.call(acct) if account.nil? && acct.present? + self.account = (ResolveRemoteAccountService.new.call(acct) if account.nil? && acct.present?) end end diff --git a/config/locales/en.yml b/config/locales/en.yml @@ -460,6 +460,7 @@ en: acct: username@domain of the new account currently_redirecting: 'Your profile is set to redirect to:' proceed: Save + updated_msg: Your account migration setting successfully updated! moderation: title: Moderation notification_mailer: