diff options
author | Claire <claire.github-309c@sitedethib.com> | 2023-03-03 20:36:18 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-03 20:36:18 +0100 |
commit | f8bb4d0d6b1050de481187e9f034b8bbb649d931 (patch) | |
tree | 7723b62879fc13fe2f7e0e95d2afd84e0305ac92 /app | |
parent | b55fc883b6181fb8080fbafd53bc7a9f1896b295 (diff) |
Fix server error when failing to follow back followers from `/relationships` (#23787)
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/relationships_controller.rb | 2 | ||||
-rw-r--r-- | app/models/form/account_batch.rb | 6 |
2 files changed, 8 insertions, 0 deletions
diff --git a/app/controllers/relationships_controller.rb b/app/controllers/relationships_controller.rb index baa34da22..de5dc5879 100644 --- a/app/controllers/relationships_controller.rb +++ b/app/controllers/relationships_controller.rb @@ -19,6 +19,8 @@ class RelationshipsController < ApplicationController @form.save rescue ActionController::ParameterMissing # Do nothing + rescue Mastodon::NotPermittedError, ActiveRecord::RecordNotFound + flash[:alert] = I18n.t('relationships.follow_failure') if action_from_button == 'follow' ensure redirect_to relationships_path(filter_params) end diff --git a/app/models/form/account_batch.rb b/app/models/form/account_batch.rb index 5a7fc7ed1..6a05f8163 100644 --- a/app/models/form/account_batch.rb +++ b/app/models/form/account_batch.rb @@ -35,9 +35,15 @@ class Form::AccountBatch private def follow! + error = nil + accounts.each do |target_account| FollowService.new.call(current_account, target_account) + rescue Mastodon::NotPermittedError, ActiveRecord::RecordNotFound => e + error ||= e end + + raise error if error.present? end def unfollow! |