Reduce usage of LD signatures (#9659)
* Do not LDS-sign Follow, Accept, Reject, Undo, Block * Do not use LDS for Create activities of private toots * Minor cleanup * Ignore unsigned activities instead of misattributing them * Use status.distributable? instead of querying visibility directly
This commit is contained in:
parent
fb08039de5
commit
290932602b
13 changed files with 40 additions and 34 deletions
|
@ -27,7 +27,7 @@ class ActivityPub::ProcessCollectionService < BaseService
|
|||
private
|
||||
|
||||
def different_actor?
|
||||
@json['actor'].present? && value_or_id(@json['actor']) != @account.uri && @json['signature'].present?
|
||||
@json['actor'].present? && value_or_id(@json['actor']) != @account.uri
|
||||
end
|
||||
|
||||
def process_items(items)
|
||||
|
|
|
@ -31,11 +31,11 @@ class AfterBlockDomainFromAccountService < BaseService
|
|||
|
||||
return unless follow.account.activitypub?
|
||||
|
||||
json = Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(
|
||||
json = ActiveModelSerializers::SerializableResource.new(
|
||||
follow,
|
||||
serializer: ActivityPub::RejectFollowSerializer,
|
||||
adapter: ActivityPub::Adapter
|
||||
).as_json).sign!(@account))
|
||||
).to_json
|
||||
|
||||
ActivityPub::DeliveryWorker.perform_async(json, @account.id, follow.account.inbox_url)
|
||||
end
|
||||
|
|
|
@ -24,11 +24,11 @@ class AuthorizeFollowService < BaseService
|
|||
end
|
||||
|
||||
def build_json(follow_request)
|
||||
Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(
|
||||
ActiveModelSerializers::SerializableResource.new(
|
||||
follow_request,
|
||||
serializer: ActivityPub::AcceptFollowSerializer,
|
||||
adapter: ActivityPub::Adapter
|
||||
).as_json).sign!(follow_request.target_account))
|
||||
).to_json
|
||||
end
|
||||
|
||||
def build_xml(follow_request)
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class BlockService < BaseService
|
||||
include StreamEntryRenderer
|
||||
|
||||
def call(account, target_account)
|
||||
return if account.id == target_account.id
|
||||
|
||||
|
@ -27,11 +25,11 @@ class BlockService < BaseService
|
|||
end
|
||||
|
||||
def build_json(block)
|
||||
Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(
|
||||
ActiveModelSerializers::SerializableResource.new(
|
||||
block,
|
||||
serializer: ActivityPub::BlockSerializer,
|
||||
adapter: ActivityPub::Adapter
|
||||
).as_json).sign!(block.account))
|
||||
).to_json
|
||||
end
|
||||
|
||||
def build_xml(block)
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class FollowService < BaseService
|
||||
include StreamEntryRenderer
|
||||
|
||||
# Follow a remote user, notify remote user about the follow
|
||||
# @param [Account] source_account From which to follow
|
||||
# @param [String, Account] uri User URI to follow in the form of username@domain (or account record)
|
||||
|
@ -82,10 +80,10 @@ class FollowService < BaseService
|
|||
end
|
||||
|
||||
def build_json(follow_request)
|
||||
Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(
|
||||
ActiveModelSerializers::SerializableResource.new(
|
||||
follow_request,
|
||||
serializer: ActivityPub::FollowSerializer,
|
||||
adapter: ActivityPub::Adapter
|
||||
).as_json).sign!(follow_request.account))
|
||||
).to_json
|
||||
end
|
||||
end
|
||||
|
|
|
@ -60,11 +60,13 @@ class ProcessMentionsService < BaseService
|
|||
end
|
||||
|
||||
def activitypub_json
|
||||
@activitypub_json ||= Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(
|
||||
return @activitypub_json if defined?(@activitypub_json)
|
||||
payload = ActiveModelSerializers::SerializableResource.new(
|
||||
@status,
|
||||
serializer: ActivityPub::ActivitySerializer,
|
||||
adapter: ActivityPub::Adapter
|
||||
).as_json).sign!(@status.account))
|
||||
).as_json
|
||||
@activitypub_json = Oj.dump(@status.distributable? ? ActivityPub::LinkedDataSignature.new(payload).sign!(@status.account) : payload)
|
||||
end
|
||||
|
||||
def resolve_account_service
|
||||
|
|
|
@ -19,11 +19,11 @@ class RejectFollowService < BaseService
|
|||
end
|
||||
|
||||
def build_json(follow_request)
|
||||
Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(
|
||||
ActiveModelSerializers::SerializableResource.new(
|
||||
follow_request,
|
||||
serializer: ActivityPub::RejectFollowSerializer,
|
||||
adapter: ActivityPub::Adapter
|
||||
).as_json).sign!(follow_request.target_account))
|
||||
).to_json
|
||||
end
|
||||
|
||||
def build_xml(follow_request)
|
||||
|
|
|
@ -20,11 +20,11 @@ class UnblockService < BaseService
|
|||
end
|
||||
|
||||
def build_json(unblock)
|
||||
Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(
|
||||
ActiveModelSerializers::SerializableResource.new(
|
||||
unblock,
|
||||
serializer: ActivityPub::UndoBlockSerializer,
|
||||
adapter: ActivityPub::Adapter
|
||||
).as_json).sign!(unblock.account))
|
||||
).to_json
|
||||
end
|
||||
|
||||
def build_xml(block)
|
||||
|
|
|
@ -43,11 +43,11 @@ class UnfollowService < BaseService
|
|||
end
|
||||
|
||||
def build_json(follow)
|
||||
Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(
|
||||
ActiveModelSerializers::SerializableResource.new(
|
||||
follow,
|
||||
serializer: ActivityPub::UndoFollowSerializer,
|
||||
adapter: ActivityPub::Adapter
|
||||
).as_json).sign!(follow.account))
|
||||
).to_json
|
||||
end
|
||||
|
||||
def build_xml(follow)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue