From 706e534455e2137c324c0ebb30435e7630ab7c1f Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 27 Nov 2017 22:47:06 +0100 Subject: Add UI for setting up account migration (#5832) --- app/models/form/migration.rb | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 app/models/form/migration.rb (limited to 'app/models/form/migration.rb') diff --git a/app/models/form/migration.rb b/app/models/form/migration.rb new file mode 100644 index 000000000..53cee7ee1 --- /dev/null +++ b/app/models/form/migration.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +class Form::Migration + include ActiveModel::Validations + + attr_accessor :acct, :account + + validates :acct, presence: true + + def initialize(attrs = {}) + @account = attrs[:account] + @acct = attrs[:account].acct unless @account.nil? + @acct = attrs[:acct].gsub(/\A@/, '').strip unless attrs[:acct].nil? + end + + def valid? + return false unless super + set_account + errors.empty? + end + + private + + def set_account + self.account = ResolveRemoteAccountService.new.call(acct) if account.nil? && acct.present? + end +end -- cgit From 1b57d4dd3a64cdafd74a12ff67502795b06a4eb2 Mon Sep 17 00:00:00 2001 From: nullkal Date: Tue, 28 Nov 2017 22:31:23 +0900 Subject: Fix account migration feature (#5837) * Make removable account migration * Fix error during update of account migration setting * Add notice when update account migration setting --- app/controllers/settings/migrations_controller.rb | 15 ++++++++------- app/models/form/migration.rb | 4 +--- config/locales/en.yml | 1 + 3 files changed, 10 insertions(+), 10 deletions(-) (limited to 'app/models/form/migration.rb') diff --git a/app/controllers/settings/migrations_controller.rb b/app/controllers/settings/migrations_controller.rb index 711ba338f..b18403a7f 100644 --- 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 index 53cee7ee1..b74987337 100644 --- 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 index 2b7e9f2e2..d6f18e859 100644 --- 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: -- cgit