about summary refs log tree commit diff
path: root/app/models
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-09-28 17:50:14 +0200
committerGitHub <noreply@github.com>2017-09-28 17:50:14 +0200
commit76f360c625d6f7e1200a35430cced872fc6098ff (patch)
treecaa27ee739a112ff0b317a377e64903b39709619 /app/models
parenta3202f61af7d4833808d429c79dfc21e74f06c99 (diff)
If HTTP signature is wrong and webfinger cache is stale, retry with resolve (#5129)
If the signature could not be verified and the webfinger of the account
was last retrieved longer than the cache period, try re-resolving the
account and then attempting to verify the signature again
Diffstat (limited to 'app/models')
-rw-r--r--app/models/account.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/app/models/account.rb b/app/models/account.rb
index 0b025d1be..ce7773b4b 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -137,6 +137,15 @@ class Account < ApplicationRecord
     subscription_expires_at.present?
   end
 
+  def possibly_stale?
+    last_webfingered_at.nil? || last_webfingered_at <= 1.day.ago
+  end
+
+  def refresh!
+    return if local?
+    ResolveRemoteAccountService.new.call(acct)
+  end
+
   def keypair
     @keypair ||= OpenSSL::PKey::RSA.new(private_key || public_key)
   end