diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2022-10-29 01:31:45 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-29 01:31:45 +0200 |
commit | dc5c86add78e03c7c53cf89d084c5e40f533cbc4 (patch) | |
tree | c2ead571b79c38f4710f2d466fca6dae3ccbd285 | |
parent | 317ec06dc791bfbd9eb86177b3027ca92d683b8b (diff) |
Fix account migration form ever using outdated account data (#18429)
-rw-r--r-- | app/models/form/redirect.rb | 2 | ||||
-rw-r--r-- | app/services/resolve_account_service.rb | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/app/models/form/redirect.rb b/app/models/form/redirect.rb index 19ee9faed..795fdd057 100644 --- a/app/models/form/redirect.rb +++ b/app/models/form/redirect.rb @@ -31,7 +31,7 @@ class Form::Redirect private def set_target_account - @target_account = ResolveAccountService.new.call(acct) + @target_account = ResolveAccountService.new.call(acct, skip_cache: true) rescue Webfinger::Error, HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error # Validation will take care of it end diff --git a/app/services/resolve_account_service.rb b/app/services/resolve_account_service.rb index e3b370968..d8b81a7b9 100644 --- a/app/services/resolve_account_service.rb +++ b/app/services/resolve_account_service.rb @@ -12,6 +12,7 @@ class ResolveAccountService < BaseService # @param [Hash] options # @option options [Boolean] :redirected Do not follow further Webfinger redirects # @option options [Boolean] :skip_webfinger Do not attempt any webfinger query or refreshing account data + # @option options [Boolean] :skip_cache Get the latest data from origin even if cache is not due to update yet # @option options [Boolean] :suppress_errors When failing, return nil instead of raising an error # @return [Account] def call(uri, options = {}) @@ -120,7 +121,7 @@ class ResolveAccountService < BaseService return false if @options[:check_delivery_availability] && !DeliveryFailureTracker.available?(@domain) return false if @options[:skip_webfinger] - @account.nil? || @account.possibly_stale? + @options[:skip_cache] || @account.nil? || @account.possibly_stale? end def activitypub_ready? |