0
0
Fork 0

Refactor all ActivityPub deliveries to be serialized and signed through one concern (#10966)

This commit is contained in:
Eugen Rochko 2019-06-04 23:11:18 +02:00 committed by GitHub
parent 48fee1a800
commit f2b743e715
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 79 additions and 153 deletions

View file

@ -204,6 +204,10 @@ class Account < ApplicationRecord
end
end
def sign?
true
end
def keypair
@keypair ||= OpenSSL::PKey::RSA.new(private_key || public_key)
end

View file

@ -3,6 +3,7 @@
class Form::AccountBatch
include ActiveModel::Model
include Authorization
include Payloadable
attr_accessor :account_ids, :action, :current_account
@ -54,13 +55,7 @@ class Form::AccountBatch
return unless follow.account.activitypub?
json = ActiveModelSerializers::SerializableResource.new(
follow,
serializer: ActivityPub::RejectFollowSerializer,
adapter: ActivityPub::Adapter
).to_json
ActivityPub::DeliveryWorker.perform_async(json, current_account.id, follow.account.inbox_url)
ActivityPub::DeliveryWorker.perform_async(Oj.dump(serialize_payload(follow, ActivityPub::RejectFollowSerializer)), current_account.id, follow.account.inbox_url)
end
def approve!

View file

@ -204,6 +204,8 @@ class Status < ApplicationRecord
public_visibility? || unlisted_visibility?
end
alias sign? distributable?
def with_media?
media_attachments.any?
end