Fix server error when failing to follow back followers from `/relationships` (#23787)

pull/24334/head
Claire 2023-03-03 20:36:18 +01:00
parent b52746e64b
commit aff3f850de
3 changed files with 9 additions and 0 deletions

View File

@ -19,6 +19,8 @@ class RelationshipsController < ApplicationController
@form.save @form.save
rescue ActionController::ParameterMissing rescue ActionController::ParameterMissing
# Do nothing # Do nothing
rescue Mastodon::NotPermittedError, ActiveRecord::RecordNotFound
flash[:alert] = I18n.t('relationships.follow_failure') if action_from_button == 'follow'
ensure ensure
redirect_to relationships_path(filter_params) redirect_to relationships_path(filter_params)
end end

View File

@ -35,9 +35,15 @@ class Form::AccountBatch
private private
def follow! def follow!
error = nil
accounts.each do |target_account| accounts.each do |target_account|
FollowService.new.call(current_account, target_account) FollowService.new.call(current_account, target_account)
rescue Mastodon::NotPermittedError, ActiveRecord::RecordNotFound => e
error ||= e
end end
raise error if error.present?
end end
def unfollow! def unfollow!

View File

@ -1399,6 +1399,7 @@ en:
confirm_remove_selected_followers: Are you sure you want to remove selected followers? confirm_remove_selected_followers: Are you sure you want to remove selected followers?
confirm_remove_selected_follows: Are you sure you want to remove selected follows? confirm_remove_selected_follows: Are you sure you want to remove selected follows?
dormant: Dormant dormant: Dormant
follow_failure: Could not follow some of the selected accounts.
follow_selected_followers: Follow selected followers follow_selected_followers: Follow selected followers
followers: Followers followers: Followers
following: Following following: Following