diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2020-11-08 00:28:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-08 00:28:39 +0100 |
commit | 3134691948aeacb16b7386ed77bbea4581beec40 (patch) | |
tree | 45ecf62f19879f08bf4c35584c58a64ea09c0c27 /app/lib | |
parent | ee8cf246cfe8e05914ad7dcf81596f8535b3e161 (diff) |
Add support for reversible suspensions through ActivityPub (#14989)
Diffstat (limited to 'app/lib')
-rw-r--r-- | app/lib/activitypub/adapter.rb | 1 | ||||
-rw-r--r-- | app/lib/webfinger.rb | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/app/lib/activitypub/adapter.rb b/app/lib/activitypub/adapter.rb index 9a786c9a4..2d6b87659 100644 --- a/app/lib/activitypub/adapter.rb +++ b/app/lib/activitypub/adapter.rb @@ -23,6 +23,7 @@ class ActivityPub::Adapter < ActiveModelSerializers::Adapter::Base discoverable: { 'toot' => 'http://joinmastodon.org/ns#', 'discoverable' => 'toot:discoverable' }, voters_count: { 'toot' => 'http://joinmastodon.org/ns#', 'votersCount' => 'toot:votersCount' }, olm: { 'toot' => 'http://joinmastodon.org/ns#', 'Device' => 'toot:Device', 'Ed25519Signature' => 'toot:Ed25519Signature', 'Ed25519Key' => 'toot:Ed25519Key', 'Curve25519Key' => 'toot:Curve25519Key', 'EncryptedMessage' => 'toot:EncryptedMessage', 'publicKeyBase64' => 'toot:publicKeyBase64', 'deviceId' => 'toot:deviceId', 'claim' => { '@type' => '@id', '@id' => 'toot:claim' }, 'fingerprintKey' => { '@type' => '@id', '@id' => 'toot:fingerprintKey' }, 'identityKey' => { '@type' => '@id', '@id' => 'toot:identityKey' }, 'devices' => { '@type' => '@id', '@id' => 'toot:devices' }, 'messageFranking' => 'toot:messageFranking', 'messageType' => 'toot:messageType', 'cipherText' => 'toot:cipherText' }, + suspended: { 'toot' => 'http://joinmastodon.org/ns#', 'suspended' => 'toot:suspended' }, }.freeze def self.default_key_transform diff --git a/app/lib/webfinger.rb b/app/lib/webfinger.rb index b2374c494..c7aa43bb3 100644 --- a/app/lib/webfinger.rb +++ b/app/lib/webfinger.rb @@ -2,6 +2,8 @@ class Webfinger class Error < StandardError; end + class GoneError < Error; end + class RedirectError < StandardError; end class Response def initialize(body) @@ -47,6 +49,8 @@ class Webfinger res.body_with_limit elsif res.code == 404 && use_fallback body_from_host_meta + elsif res.code == 410 + raise Webfinger::GoneError, "#{@uri} is gone from the server" else raise Webfinger::Error, "Request for #{@uri} returned HTTP #{res.code}" end |