diff options
author | Jenkins <jenkins@jenkins.ninjawedding.org> | 2018-01-03 20:17:13 +0000 |
---|---|---|
committer | Jenkins <jenkins@jenkins.ninjawedding.org> | 2018-01-03 20:17:13 +0000 |
commit | fc884d015a1a2d6c31976af3d63039390fa15939 (patch) | |
tree | 0cb950fd716f3f2cb9f13348cf42fb6e4bc8b909 /app/lib/activitypub/activity | |
parent | 933840bebf4ce8f5282c88e8c3e8c1b3675fbf2d (diff) | |
parent | d907d4352e9b6cb22bc1fabd42ca3fc60aef8a37 (diff) |
Merge remote-tracking branch 'tootsuite/master' into glitchsoc/master
Diffstat (limited to 'app/lib/activitypub/activity')
-rw-r--r-- | app/lib/activitypub/activity/accept.rb | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/app/lib/activitypub/activity/accept.rb b/app/lib/activitypub/activity/accept.rb index bd90c9019..d0082483c 100644 --- a/app/lib/activitypub/activity/accept.rb +++ b/app/lib/activitypub/activity/accept.rb @@ -2,16 +2,18 @@ class ActivityPub::Activity::Accept < ActivityPub::Activity def perform - case @object['type'] - when 'Follow' - accept_follow + if @object.respond_to?(:[]) && + @object['type'] == 'Follow' && @object['actor'].present? + accept_follow_from @object['actor'] + else + accept_follow_object @object end end private - def accept_follow - target_account = account_from_uri(target_uri) + def accept_follow_from(actor) + target_account = account_from_uri(value_or_id(actor)) return if target_account.nil? || !target_account.local? @@ -19,7 +21,8 @@ class ActivityPub::Activity::Accept < ActivityPub::Activity follow_request&.authorize! end - def target_uri - @target_uri ||= value_or_id(@object['actor']) + def accept_follow_object(object) + follow_request = ActivityPub::TagManager.instance.uri_to_resource(value_or_id(object), FollowRequest) + follow_request&.authorize! end end |