summaryrefslogtreecommitdiffstats
path: root/app/lib/activitypub/activity/announce.rb
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2020-08-24 14:11:47 +0200
committerGitHub <noreply@github.com>2020-08-24 14:11:47 +0200
commit720214feb01bbd8d28359810242c4f41a2dfc82e (patch)
tree6840afdf9dc1573c69910ecafa66740c2b2fc546 /app/lib/activitypub/activity/announce.rb
parent9669557be1d9c8577564242861bdbad9b821906a (diff)
Add support for inlined objects in activity audience (#14514)
* Add support for inlined objects in activity audience * Add tests
Diffstat (limited to 'app/lib/activitypub/activity/announce.rb')
-rw-r--r--app/lib/activitypub/activity/announce.rb14
1 files changed, 11 insertions, 3 deletions
diff --git a/app/lib/activitypub/activity/announce.rb b/app/lib/activitypub/activity/announce.rb
index 9e108985a3e..349e8f77e71 100644
--- a/app/lib/activitypub/activity/announce.rb
+++ b/app/lib/activitypub/activity/announce.rb
@@ -34,12 +34,20 @@ class ActivityPub::Activity::Announce < ActivityPub::Activity
private
+ def audience_to
+ as_array(@json['to']).map { |x| value_or_id(x) }
+ end
+
+ def audience_cc
+ as_array(@json['cc']).map { |x| value_or_id(x) }
+ end
+
def visibility_from_audience
- if equals_or_includes?(@json['to'], ActivityPub::TagManager::COLLECTIONS[:public])
+ if audience_to.include?(ActivityPub::TagManager::COLLECTIONS[:public])
:public
- elsif equals_or_includes?(@json['cc'], ActivityPub::TagManager::COLLECTIONS[:public])
+ elsif audience_cc.include?(ActivityPub::TagManager::COLLECTIONS[:public])
:unlisted
- elsif equals_or_includes?(@json['to'], @account.followers_url)
+ elsif audience_to.include?(@account.followers_url)
:private
else
:direct