summaryrefslogtreecommitdiffstats
path: root/app/lib/activitypub/activity.rb
diff options
context:
space:
mode:
authorpuckipedia <puck@puckipedia.com>2019-10-24 20:45:43 +0000
committerEugen Rochko <eugen@zeonfederated.com>2019-10-24 22:45:43 +0200
commitd2919f7e94a22971fb368f614ecccce2b055d231 (patch)
tree4f3cf946672ce54be3ce017dc50a3308908739af /app/lib/activitypub/activity.rb
parentbd684e25d9ddb77e396e28a39ff221e9db28e608 (diff)
Allow Accept/Reject with a non-embedded object (#12199)
Some ActivityPub servers refuse to embed remote objects into their own output. This is because they are not the authoritative source for these objects, and as such embedding them is always a waste of space. The follow request and follow models contain a URI, so this can be used to match them.
Diffstat (limited to 'app/lib/activitypub/activity.rb')
-rw-r--r--app/lib/activitypub/activity.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb
index a4a9baaee40..5cd48a6aec8 100644
--- a/app/lib/activitypub/activity.rb
+++ b/app/lib/activitypub/activity.rb
@@ -153,6 +153,14 @@ class ActivityPub::Activity
fetch_remote_original_status
end
+ def follow_request_from_object
+ @follow_request ||= FollowRequest.find_by(target_account: @account, uri: object_uri) unless object_uri.nil?
+ end
+
+ def follow_from_object
+ @follow ||= Follow.find_by(target_account: @account, uri: object_uri) unless object_uri.nil?
+ end
+
def fetch_remote_original_status
if object_uri.start_with?('http')
return if ActivityPub::TagManager.instance.local_uri?(object_uri)