diff options
author | ThibG <thib@sitedethib.com> | 2020-08-24 14:11:47 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-24 14:11:47 +0200 |
commit | 720214feb01bbd8d28359810242c4f41a2dfc82e (patch) | |
tree | 6840afdf9dc1573c69910ecafa66740c2b2fc546 /app/lib/activitypub/activity/announce.rb | |
parent | 9669557be1d9c8577564242861bdbad9b821906a (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.rb | 14 |
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 |