diff options
author | Fire Demon <firedemon@creature.cafe> | 2020-07-25 23:19:56 -0500 |
---|---|---|
committer | Fire Demon <firedemon@creature.cafe> | 2020-08-30 05:45:15 -0500 |
commit | 70763ef0ea6cb6b997ac144d8b4d855b16fb838c (patch) | |
tree | 22188b8531085b35652f5459fc04e84384d1a231 /app/services | |
parent | 3c6057034eea75f1992c9d2f2b2c2e401858bdc7 (diff) |
[Feature, Privacy] Add base support for per-domain post privacy
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/process_mentions_service.rb | 8 | ||||
-rw-r--r-- | app/services/reblog_service.rb | 2 | ||||
-rw-r--r-- | app/services/remove_status_service.rb | 4 |
3 files changed, 7 insertions, 7 deletions
diff --git a/app/services/process_mentions_service.rb b/app/services/process_mentions_service.rb index 8b4b11617..9d219f3f6 100644 --- a/app/services/process_mentions_service.rb +++ b/app/services/process_mentions_service.rb @@ -21,6 +21,7 @@ class ProcessMentionsService < BaseService check_for_spam(status) + @activitypub_json = {} mentions.each { |mention| create_notification(mention) } end @@ -32,13 +33,12 @@ class ProcessMentionsService < BaseService if mentioned_account.local? LocalNotificationWorker.perform_async(mentioned_account.id, mention.id, mention.class.name) elsif mentioned_account.activitypub? && !@status.local_only? - ActivityPub::DeliveryWorker.perform_async(activitypub_json, mention.status.account_id, mentioned_account.inbox_url) + ActivityPub::DeliveryWorker.perform_async(activitypub_json(mentioned_account.domain), mention.status.account_id, mentioned_account.inbox_url) end end - def activitypub_json - return @activitypub_json if defined?(@activitypub_json) - @activitypub_json = Oj.dump(serialize_payload(ActivityPub::ActivityPresenter.from_status(@status, embed: false), ActivityPub::ActivitySerializer, signer: @status.account)) + def activitypub_json(domain) + @activitypub_json[domain] ||= Oj.dump(serialize_payload(ActivityPub::ActivityPresenter.from_status(@status, embed: false), ActivityPub::ActivitySerializer, signer: @status.account, target_domain: domain)) end def check_for_spam(status) diff --git a/app/services/reblog_service.rb b/app/services/reblog_service.rb index 65fc2c40d..f4280e9b2 100644 --- a/app/services/reblog_service.rb +++ b/app/services/reblog_service.rb @@ -60,6 +60,6 @@ class ReblogService < BaseService end def build_json(reblog) - Oj.dump(serialize_payload(ActivityPub::ActivityPresenter.from_status(reblog, embed: false), ActivityPub::ActivitySerializer, signer: reblog.account)) + Oj.dump(serialize_payload(ActivityPub::ActivityPresenter.from_status(reblog, embed: false), ActivityPub::ActivitySerializer, signer: reblog.account, target_domain: reblog.account.domain)) end end diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb index a5aafee21..f9604071c 100644 --- a/app/services/remove_status_service.rb +++ b/app/services/remove_status_service.rb @@ -107,12 +107,12 @@ class RemoveStatusService < BaseService def relay! ActivityPub::DeliveryWorker.push_bulk(Relay.enabled.pluck(:inbox_url)) do |inbox_url| - [signed_activity_json, @account.id, inbox_url] + [signed_activity_json(Addressable::URI.parse(inbox_url).host), @account.id, inbox_url] end end def signed_activity_json - @signed_activity_json ||= Oj.dump(serialize_payload(@status, @status.reblog? ? ActivityPub::UndoAnnounceSerializer : ActivityPub::DeleteSerializer, signer: @account)) + @signed_activity_json[domain] ||= Oj.dump(serialize_payload(@status, @status.reblog? ? ActivityPub::UndoAnnounceSerializer : ActivityPub::DeleteSerializer, signer: @account, target_domain: domain)) end def remove_reblogs |