From c09deb5bc6601aeb60541bb92ed755400b76fa98 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Tue, 11 Aug 2020 18:00:35 +0200 Subject: [PATCH] Fix remote group visibility and use Mastodon's discoverable attribute Make sure actor visibility is :public or :unlisted Signed-off-by: Thomas Citharel --- lib/federation/activity_pub/utils.ex | 3 + .../activity_stream/converter/actor.ex | 4 +- .../activity_pub/activity_pub_test.exs | 15 ++- .../fetch_tcit@framapiaf.org.json | 98 ++++--------------- ...h_tcit@framapiaf.org_not_discoverable.json | 79 +++++++++++++++ 5 files changed, 117 insertions(+), 82 deletions(-) create mode 100644 test/fixtures/vcr_cassettes/activity_pub/fetch_tcit@framapiaf.org_not_discoverable.json diff --git a/lib/federation/activity_pub/utils.ex b/lib/federation/activity_pub/utils.ex index 4e546067..a5d38b41 100644 --- a/lib/federation/activity_pub/utils.ex +++ b/lib/federation/activity_pub/utils.ex @@ -39,6 +39,9 @@ defmodule Mobilizon.Federation.ActivityPub.Utils do "sc" => "http://schema.org#", "ical" => "http://www.w3.org/2002/12/cal/ical#", "pt" => "https://joinpeertube.org/ns#", + "toot" => "http://joinmastodon.org/ns#", + "discoverable" => "toot:discoverable", + "manuallyApprovesFollowers" => "as:manuallyApprovesFollowers", "Hashtag" => "as:Hashtag", "category" => "sc:category", "uuid" => "sc:identifier", diff --git a/lib/federation/activity_stream/converter/actor.ex b/lib/federation/activity_stream/converter/actor.ex index 54ad8bfa..f612836b 100644 --- a/lib/federation/activity_stream/converter/actor.ex +++ b/lib/federation/activity_stream/converter/actor.ex @@ -64,7 +64,8 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Actor do shared_inbox_url: data["endpoints"]["sharedInbox"], domain: URI.parse(data["id"]).host, manually_approves_followers: data["manuallyApprovesFollowers"], - type: data["type"] + type: data["type"], + visibility: if(Map.get(data, "discoverable", false) == true, do: :public, else: :unlisted) } end @@ -96,6 +97,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Actor do "endpoints" => %{ "sharedInbox" => actor.shared_inbox_url }, + "discoverable" => actor.visibility == :public, "manuallyApprovesFollowers" => actor.manually_approves_followers, "publicKey" => %{ "id" => "#{actor.url}#main-key", diff --git a/test/federation/activity_pub/activity_pub_test.exs b/test/federation/activity_pub/activity_pub_test.exs index cb8bfda3..70e7ac83 100644 --- a/test/federation/activity_pub/activity_pub_test.exs +++ b/test/federation/activity_pub/activity_pub_test.exs @@ -43,8 +43,15 @@ defmodule Mobilizon.Federation.ActivityPubTest do describe "fetching actor from its url" do test "returns an actor from nickname" do use_cassette "activity_pub/fetch_tcit@framapiaf.org" do - assert {:ok, %Actor{preferred_username: "tcit", domain: "framapiaf.org"} = actor} = - ActivityPub.make_actor_from_nickname("tcit@framapiaf.org") + assert {:ok, + %Actor{preferred_username: "tcit", domain: "framapiaf.org", visibility: :public} = + actor} = ActivityPub.make_actor_from_nickname("tcit@framapiaf.org") + end + + use_cassette "activity_pub/fetch_tcit@framapiaf.org_not_discoverable" do + assert {:ok, + %Actor{preferred_username: "tcit", domain: "framapiaf.org", visibility: :unlisted} = + actor} = ActivityPub.make_actor_from_nickname("tcit@framapiaf.org") end end @@ -52,7 +59,9 @@ defmodule Mobilizon.Federation.ActivityPubTest do test "returns an actor from url" do # Initial fetch use_cassette "activity_pub/fetch_framapiaf.org_users_tcit" do - assert {:ok, %Actor{preferred_username: "tcit", domain: "framapiaf.org"}} = + # Unlisted because discoverable is not present in the JSON payload + assert {:ok, + %Actor{preferred_username: "tcit", domain: "framapiaf.org", visibility: :unlisted}} = ActivityPub.get_or_fetch_actor_by_url(@actor_url) end diff --git a/test/fixtures/vcr_cassettes/activity_pub/fetch_tcit@framapiaf.org.json b/test/fixtures/vcr_cassettes/activity_pub/fetch_tcit@framapiaf.org.json index fbaa2637..59d63742 100644 --- a/test/fixtures/vcr_cassettes/activity_pub/fetch_tcit@framapiaf.org.json +++ b/test/fixtures/vcr_cassettes/activity_pub/fetch_tcit@framapiaf.org.json @@ -3,20 +3,23 @@ "request": { "body": "", "headers": { - "Accept": "application/json, application/activity+json, application/jrd+json" + "accept": "application/json, application/activity+json, application/jrd+json" }, "method": "get", "options": { - "follow_redirect": "true" + "follow_redirect": "true", + "ssl": { + "versions": ["tlsv1.2"] + } }, "request_body": "", "url": "http://framapiaf.org/.well-known/webfinger?resource=acct:tcit@framapiaf.org" }, "response": { "binary": false, - "body": "{\"subject\":\"acct:tcit@framapiaf.org\",\"aliases\":[\"https://framapiaf.org/@tcit\",\"https://framapiaf.org/users/tcit\"],\"links\":[{\"rel\":\"http://webfinger.net/rel/profile-page\",\"type\":\"text/html\",\"href\":\"https://framapiaf.org/@tcit\"},{\"rel\":\"http://schemas.google.com/g/2010#updates-from\",\"type\":\"application/atom+xml\",\"href\":\"https://framapiaf.org/users/tcit.atom\"},{\"rel\":\"self\",\"type\":\"application/activity+json\",\"href\":\"https://framapiaf.org/users/tcit\"},{\"rel\":\"salmon\",\"href\":\"https://framapiaf.org/api/salmon/1\"},{\"rel\":\"magic-public-key\",\"href\":\"data:application/magic-public-key,RSA.pscVCt06lrIiB5jT6KqkZZwPVoPkhR7HzoTGb8rnklZuOyP4goHIuBDnurklztkmDCaM7DbsUWAPgRVtwWFEWuQrOenb7BPRe_m99pJfUTkBQU3IeuRMD_5Fc3OTIhHQOltTSiB900srCUxjysfwnV5JFciCz8YAXTNJZD34qyv8DbtC_pCJM7wMd9Hl3ohxSPETa6CJUaTdlNwlYJa2MOMCj6_7Iv5oAg14FT9lwqS5lF7jPHk9Z7PNc2wPmNVgIYA2n9d5k7JY8TdM8iu4HLnIbJuqDd1uitlYgy1qsdsxjv4U2Y7Nytc-3ZKHtGsCzUltYL5kC7uWrFpGoWo10Q==.AQAB\"},{\"rel\":\"http://ostatus.org/schema/1.0/subscribe\",\"template\":\"https://framapiaf.org/authorize_interaction?uri={uri}\"}]}", + "body": "{\"subject\":\"acct:tcit@framapiaf.org\",\"aliases\":[\"https://framapiaf.org/@tcit\",\"https://framapiaf.org/users/tcit\"],\"links\":[{\"rel\":\"http://webfinger.net/rel/profile-page\",\"type\":\"text/html\",\"href\":\"https://framapiaf.org/@tcit\"},{\"rel\":\"self\",\"type\":\"application/activity+json\",\"href\":\"https://framapiaf.org/users/tcit\"},{\"rel\":\"http://ostatus.org/schema/1.0/subscribe\",\"template\":\"https://framapiaf.org/authorize_interaction?uri={uri}\"}]}", "headers": { - "Date": "Tue, 14 May 2019 10:04:41 GMT", + "Date": "Tue, 11 Aug 2020 15:54:52 GMT", "Content-Type": "application/jrd+json; charset=utf-8", "Transfer-Encoding": "chunked", "Connection": "keep-alive", @@ -26,11 +29,11 @@ "X-XSS-Protection": "1; mode=block", "Vary": "Accept, Accept-Encoding, Origin", "Cache-Control": "max-age=259200, public", - "ETag": "W/\"a699e76c8a4a88095aa2f31146a04969\"", - "X-Request-Id": "7e6e27bc-9009-4d70-8d4f-bd9a2b6d72ab", - "X-Runtime": "0.004034", + "ETag": "W/\"faab8ee8c2b4d8858c5d58028878f99c\"", + "X-Request-Id": "263fca61-90d3-415e-8c73-56fd8faa9316", + "X-Runtime": "0.002879", "X-Cached": "MISS", - "Strict-Transport-Security": "max-age=31536000" + "Strict-Transport-Security": "max-age=31536000; includeSubDomains; preload" }, "status_code": 200, "type": "ok" @@ -43,17 +46,15 @@ "Accept": "application/activity+json" }, "method": "get", - "options": { - "follow_redirect": "true" - }, + "options": [], "request_body": "", "url": "https://framapiaf.org/users/tcit" }, "response": { "binary": false, - "body": "{\"@context\":[\"https://www.w3.org/ns/activitystreams\",\"https://w3id.org/security/v1\",{\"manuallyApprovesFollowers\":\"as:manuallyApprovesFollowers\",\"toot\":\"http://joinmastodon.org/ns#\",\"featured\":{\"@id\":\"toot:featured\",\"@type\":\"@id\"},\"alsoKnownAs\":{\"@id\":\"as:alsoKnownAs\",\"@type\":\"@id\"},\"movedTo\":{\"@id\":\"as:movedTo\",\"@type\":\"@id\"},\"schema\":\"http://schema.org#\",\"PropertyValue\":\"schema:PropertyValue\",\"value\":\"schema:value\",\"Hashtag\":\"as:Hashtag\",\"Emoji\":\"toot:Emoji\",\"IdentityProof\":\"toot:IdentityProof\",\"focalPoint\":{\"@container\":\"@list\",\"@id\":\"toot:focalPoint\"}}],\"id\":\"https://framapiaf.org/users/tcit\",\"type\":\"Person\",\"following\":\"https://framapiaf.org/users/tcit/following\",\"followers\":\"https://framapiaf.org/users/tcit/followers\",\"inbox\":\"https://framapiaf.org/users/tcit/inbox\",\"outbox\":\"https://framapiaf.org/users/tcit/outbox\",\"featured\":\"https://framapiaf.org/users/tcit/collections/featured\",\"preferredUsername\":\"tcit\",\"name\":\"💼 Thomas Citharel (Work)\",\"summary\":\"\\u003cp\\u003e\\u003ca href=\\\"https://framapiaf.org/tags/framasoft\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eFramasoft\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/freesoftware\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eFreeSoftware\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/activism\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eActivism\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/wallabag\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003ewallabag\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/federation\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eFederation\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/nextcloud\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eNextcloud\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/mobilizon\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eMobilizon\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/libre\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eLibre\\u003c/span\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\",\"url\":\"https://framapiaf.org/@tcit\",\"manuallyApprovesFollowers\":false,\"publicKey\":{\"id\":\"https://framapiaf.org/users/tcit#main-key\",\"owner\":\"https://framapiaf.org/users/tcit\",\"publicKeyPem\":\"-----BEGIN PUBLIC KEY-----\\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApscVCt06lrIiB5jT6Kqk\\nZZwPVoPkhR7HzoTGb8rnklZuOyP4goHIuBDnurklztkmDCaM7DbsUWAPgRVtwWFE\\nWuQrOenb7BPRe/m99pJfUTkBQU3IeuRMD/5Fc3OTIhHQOltTSiB900srCUxjysfw\\nnV5JFciCz8YAXTNJZD34qyv8DbtC/pCJM7wMd9Hl3ohxSPETa6CJUaTdlNwlYJa2\\nMOMCj6/7Iv5oAg14FT9lwqS5lF7jPHk9Z7PNc2wPmNVgIYA2n9d5k7JY8TdM8iu4\\nHLnIbJuqDd1uitlYgy1qsdsxjv4U2Y7Nytc+3ZKHtGsCzUltYL5kC7uWrFpGoWo1\\n0QIDAQAB\\n-----END PUBLIC KEY-----\\n\"},\"tag\":[{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/activism\",\"name\":\"#activism\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/federation\",\"name\":\"#federation\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/framasoft\",\"name\":\"#framasoft\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/freesoftware\",\"name\":\"#freesoftware\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/libre\",\"name\":\"#libre\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/mobilizon\",\"name\":\"#mobilizon\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/nextcloud\",\"name\":\"#nextcloud\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/wallabag\",\"name\":\"#wallabag\"}],\"attachment\":[{\"type\":\"PropertyValue\",\"name\":\"Personal account\",\"value\":\"\\u003ca href=\\\"https://social.tcit.fr/@tcit\\\" rel=\\\"me nofollow noopener\\\" target=\\\"_blank\\\"\\u003e\\u003cspan class=\\\"invisible\\\"\\u003ehttps://\\u003c/span\\u003e\\u003cspan class=\\\"\\\"\\u003esocial.tcit.fr/@tcit\\u003c/span\\u003e\\u003cspan class=\\\"invisible\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\"},{\"type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Nantes, France\"},{\"type\":\"PropertyValue\",\"name\":\"Works at\",\"value\":\"\\u003cspan class=\\\"h-card\\\"\\u003e\\u003ca href=\\\"https://framapiaf.org/@Framasoft\\\" class=\\\"u-url mention\\\"\\u003e@\\u003cspan\\u003eFramasoft\\u003c/span\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\"},{\"type\":\"PropertyValue\",\"name\":\"Website\",\"value\":\"\\u003ca href=\\\"https://tcit.fr\\\" rel=\\\"me nofollow noopener\\\" target=\\\"_blank\\\"\\u003e\\u003cspan class=\\\"invisible\\\"\\u003ehttps://\\u003c/span\\u003e\\u003cspan class=\\\"\\\"\\u003etcit.fr\\u003c/span\\u003e\\u003cspan class=\\\"invisible\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\"}],\"endpoints\":{\"sharedInbox\":\"https://framapiaf.org/inbox\"},\"icon\":{\"type\":\"Image\",\"mediaType\":\"image/jpeg\",\"url\":\"https://framapiaf.s3.framasoft.org/framapiaf/accounts/avatars/000/000/001/original/da0cad7ffd20eb61.jpg\"},\"image\":{\"type\":\"Image\",\"mediaType\":\"image/jpeg\",\"url\":\"https://framapiaf.s3.framasoft.org/framapiaf/accounts/headers/000/000/001/original/198d058b3086d82d.jpg\"}}", + "body": "{\"@context\":[\"https://www.w3.org/ns/activitystreams\",\"https://w3id.org/security/v1\",{\"manuallyApprovesFollowers\":\"as:manuallyApprovesFollowers\",\"toot\":\"http://joinmastodon.org/ns#\",\"featured\":{\"@id\":\"toot:featured\",\"@type\":\"@id\"},\"alsoKnownAs\":{\"@id\":\"as:alsoKnownAs\",\"@type\":\"@id\"},\"movedTo\":{\"@id\":\"as:movedTo\",\"@type\":\"@id\"},\"schema\":\"http://schema.org#\",\"PropertyValue\":\"schema:PropertyValue\",\"value\":\"schema:value\",\"IdentityProof\":\"toot:IdentityProof\",\"discoverable\":\"toot:discoverable\",\"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\",\"Hashtag\":\"as:Hashtag\",\"focalPoint\":{\"@container\":\"@list\",\"@id\":\"toot:focalPoint\"}}],\"id\":\"https://framapiaf.org/users/tcit\",\"type\":\"Person\",\"following\":\"https://framapiaf.org/users/tcit/following\",\"followers\":\"https://framapiaf.org/users/tcit/followers\",\"inbox\":\"https://framapiaf.org/users/tcit/inbox\",\"outbox\":\"https://framapiaf.org/users/tcit/outbox\",\"featured\":\"https://framapiaf.org/users/tcit/collections/featured\",\"preferredUsername\":\"tcit\",\"name\":\"💼 Thomas Citharel (Work)\",\"summary\":\"\\u003cp\\u003e\\u003ca href=\\\"https://framapiaf.org/tags/Framasoft\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eFramasoft\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/FreeSoftware\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eFreeSoftware\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/Activism\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eActivism\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/wallabag\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003ewallabag\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/Federation\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eFederation\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/Nextcloud\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eNextcloud\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/Mobilizon\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eMobilizon\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/Libre\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eLibre\\u003c/span\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\",\"url\":\"https://framapiaf.org/@tcit\",\"manuallyApprovesFollowers\":false,\"discoverable\":true,\"devices\":\"https://framapiaf.org/users/tcit/collections/devices\",\"publicKey\":{\"id\":\"https://framapiaf.org/users/tcit#main-key\",\"owner\":\"https://framapiaf.org/users/tcit\",\"publicKeyPem\":\"-----BEGIN PUBLIC KEY-----\\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApscVCt06lrIiB5jT6Kqk\\nZZwPVoPkhR7HzoTGb8rnklZuOyP4goHIuBDnurklztkmDCaM7DbsUWAPgRVtwWFE\\nWuQrOenb7BPRe/m99pJfUTkBQU3IeuRMD/5Fc3OTIhHQOltTSiB900srCUxjysfw\\nnV5JFciCz8YAXTNJZD34qyv8DbtC/pCJM7wMd9Hl3ohxSPETa6CJUaTdlNwlYJa2\\nMOMCj6/7Iv5oAg14FT9lwqS5lF7jPHk9Z7PNc2wPmNVgIYA2n9d5k7JY8TdM8iu4\\nHLnIbJuqDd1uitlYgy1qsdsxjv4U2Y7Nytc+3ZKHtGsCzUltYL5kC7uWrFpGoWo1\\n0QIDAQAB\\n-----END PUBLIC KEY-----\\n\"},\"tag\":[{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/activism\",\"name\":\"#activism\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/federation\",\"name\":\"#federation\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/framasoft\",\"name\":\"#framasoft\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/freesoftware\",\"name\":\"#freesoftware\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/libre\",\"name\":\"#libre\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/mobilizon\",\"name\":\"#mobilizon\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/nextcloud\",\"name\":\"#nextcloud\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/wallabag\",\"name\":\"#wallabag\"}],\"attachment\":[{\"type\":\"PropertyValue\",\"name\":\"Personal account\",\"value\":\"\\u003ca href=\\\"https://social.tcit.fr/@tcit\\\" rel=\\\"me nofollow noopener noreferrer\\\" target=\\\"_blank\\\"\\u003e\\u003cspan class=\\\"invisible\\\"\\u003ehttps://\\u003c/span\\u003e\\u003cspan class=\\\"\\\"\\u003esocial.tcit.fr/@tcit\\u003c/span\\u003e\\u003cspan class=\\\"invisible\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\"},{\"type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Nantes, France\"},{\"type\":\"PropertyValue\",\"name\":\"Works at\",\"value\":\"\\u003cspan class=\\\"h-card\\\"\\u003e\\u003ca href=\\\"https://framapiaf.org/@Framasoft\\\" class=\\\"u-url mention\\\"\\u003e@\\u003cspan\\u003eFramasoft\\u003c/span\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\"},{\"type\":\"PropertyValue\",\"name\":\"Website\",\"value\":\"\\u003ca href=\\\"https://tcit.fr\\\" rel=\\\"me nofollow noopener noreferrer\\\" target=\\\"_blank\\\"\\u003e\\u003cspan class=\\\"invisible\\\"\\u003ehttps://\\u003c/span\\u003e\\u003cspan class=\\\"\\\"\\u003etcit.fr\\u003c/span\\u003e\\u003cspan class=\\\"invisible\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\"},{\"type\":\"IdentityProof\",\"name\":\"tcit\",\"signatureAlgorithm\":\"keybase\",\"signatureValue\":\"f66b45be42803010fe2f4d80e729b41bbe5ed056e2ff1286b7b5a5ea9c724cc70f\"}],\"endpoints\":{\"sharedInbox\":\"https://framapiaf.org/inbox\"},\"icon\":{\"type\":\"Image\",\"mediaType\":\"image/jpeg\",\"url\":\"https://framapiaf.s3.framasoft.org/framapiaf/accounts/avatars/000/000/001/original/da0cad7ffd20eb61.jpg\"},\"image\":{\"type\":\"Image\",\"mediaType\":\"image/jpeg\",\"url\":\"https://framapiaf.s3.framasoft.org/framapiaf/accounts/headers/000/000/001/original/198d058b3086d82d.jpg\"}}", "headers": { - "Date": "Tue, 14 May 2019 10:04:41 GMT", + "Date": "Tue, 11 Aug 2020 15:54:52 GMT", "Content-Type": "application/activity+json; charset=utf-8", "Transfer-Encoding": "chunked", "Connection": "keep-alive", @@ -61,75 +62,16 @@ "X-Frame-Options": "DENY", "X-Content-Type-Options": "nosniff", "X-XSS-Protection": "1; mode=block", - "Link": "; rel=\"lrdd\"; type=\"application/xrd+xml\", ; rel=\"alternate\"; type=\"application/atom+xml\", ; rel=\"alternate\"; type=\"application/activity+json\"", "Vary": "Accept, Accept-Encoding, Origin", "Cache-Control": "max-age=180, public", - "ETag": "W/\"91797947448e16f3f4ba4b9abc74cfa1\"", - "X-Request-Id": "f09aae9f-a6d0-49bd-bf21-7909d373e296", - "X-Runtime": "0.011079", - "X-Cached": "MISS", - "Strict-Transport-Security": "max-age=31536000" - }, - "status_code": 200, - "type": "ok" - } - }, - { - "request": { - "body": "", - "headers": [], - "method": "get", - "options": [], - "request_body": "", - "url": "https://framapiaf.s3.framasoft.org/framapiaf/accounts/avatars/000/000/001/original/da0cad7ffd20eb61.jpg" - }, - "response": { - "binary": true, - "body": "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", - "headers": { - "Server": "nginx/1.10.3", - "Date": "Tue, 14 May 2019 10:04:42 GMT", - "Content-Type": "image/jpeg", - "Content-Length": "4297", - "Connection": "keep-alive", - "Last-Modified": "Thu, 28 Feb 2019 05:25:46 GMT", - "ETag": "\"0198adc7595a8c7b0730df99f9d9aa6c\"", - "x-amz-meta-s3cmd-attrs": "uid:1008/gname:mastodon/uname:mastodon/gid:1008/mode:33188/mtime:1491844231/atime:1551282313/ctime:1491844231", - "x-amz-request-id": "tx00000000000000024ea2d-005cda5725-c4271e-default", - "X-Cached": "HIT", - "Accept-Ranges": "bytes" - }, - "status_code": 200, - "type": "ok" - } - }, - { - "request": { - "body": "", - "headers": [], - "method": "get", - "options": [], - "request_body": "", - "url": "https://framapiaf.s3.framasoft.org/framapiaf/accounts/headers/000/000/001/original/198d058b3086d82d.jpg" - }, - "response": { - "binary": true, - "body": "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", - "headers": { - "Server": "nginx/1.10.3", - "Date": "Tue, 14 May 2019 10:04:42 GMT", - "Content-Type": "image/jpeg", - "Content-Length": "28562", - "Connection": "keep-alive", - "Last-Modified": "Thu, 28 Feb 2019 11:49:17 GMT", - "ETag": "\"f889f2485f455bd55bd4851944a90284\"", - "x-amz-meta-s3cmd-attrs": "uid:1008/gname:mastodon/uname:mastodon/gid:1008/mode:33188/mtime:1491844231/atime:1551273716/ctime:1491844231", - "x-amz-request-id": "tx000000000000000256e74-005cda92ba-c4271e-default", - "X-Cached": "MISS", - "Accept-Ranges": "bytes" + "ETag": "W/\"923fe58bc4d4146bddfde1745eed4f39\"", + "X-Request-Id": "617c0d34-9f9f-4fb4-a104-a00537207b1e", + "X-Runtime": "0.003877", + "X-Cached": "EXPIRED", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains; preload" }, "status_code": 200, "type": "ok" } } -] \ No newline at end of file +] diff --git a/test/fixtures/vcr_cassettes/activity_pub/fetch_tcit@framapiaf.org_not_discoverable.json b/test/fixtures/vcr_cassettes/activity_pub/fetch_tcit@framapiaf.org_not_discoverable.json new file mode 100644 index 00000000..a18b9eb4 --- /dev/null +++ b/test/fixtures/vcr_cassettes/activity_pub/fetch_tcit@framapiaf.org_not_discoverable.json @@ -0,0 +1,79 @@ +[ + { + "request": { + "body": "", + "headers": { + "accept": "application/json, application/activity+json, application/jrd+json" + }, + "method": "get", + "options": { + "follow_redirect": "true", + "ssl": { + "versions": [ + "tlsv1.2" + ] + } + }, + "request_body": "", + "url": "http://framapiaf.org/.well-known/webfinger?resource=acct:tcit@framapiaf.org" + }, + "response": { + "binary": false, + "body": "{\"subject\":\"acct:tcit@framapiaf.org\",\"aliases\":[\"https://framapiaf.org/@tcit\",\"https://framapiaf.org/users/tcit\"],\"links\":[{\"rel\":\"http://webfinger.net/rel/profile-page\",\"type\":\"text/html\",\"href\":\"https://framapiaf.org/@tcit\"},{\"rel\":\"self\",\"type\":\"application/activity+json\",\"href\":\"https://framapiaf.org/users/tcit\"},{\"rel\":\"http://ostatus.org/schema/1.0/subscribe\",\"template\":\"https://framapiaf.org/authorize_interaction?uri={uri}\"}]}", + "headers": { + "Date": "Tue, 11 Aug 2020 15:54:52 GMT", + "Content-Type": "application/jrd+json; charset=utf-8", + "Transfer-Encoding": "chunked", + "Connection": "keep-alive", + "Server": "Mastodon", + "X-Frame-Options": "DENY", + "X-Content-Type-Options": "nosniff", + "X-XSS-Protection": "1; mode=block", + "Vary": "Accept, Accept-Encoding, Origin", + "Cache-Control": "max-age=259200, public", + "ETag": "W/\"faab8ee8c2b4d8858c5d58028878f99c\"", + "X-Request-Id": "263fca61-90d3-415e-8c73-56fd8faa9316", + "X-Runtime": "0.002879", + "X-Cached": "MISS", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains; preload" + }, + "status_code": 200, + "type": "ok" + } + }, + { + "request": { + "body": "", + "headers": { + "Accept": "application/activity+json" + }, + "method": "get", + "options": [], + "request_body": "", + "url": "https://framapiaf.org/users/tcit" + }, + "response": { + "binary": false, + "body": "{\"@context\":[\"https://www.w3.org/ns/activitystreams\",\"https://w3id.org/security/v1\",{\"manuallyApprovesFollowers\":\"as:manuallyApprovesFollowers\",\"toot\":\"http://joinmastodon.org/ns#\",\"featured\":{\"@id\":\"toot:featured\",\"@type\":\"@id\"},\"alsoKnownAs\":{\"@id\":\"as:alsoKnownAs\",\"@type\":\"@id\"},\"movedTo\":{\"@id\":\"as:movedTo\",\"@type\":\"@id\"},\"schema\":\"http://schema.org#\",\"PropertyValue\":\"schema:PropertyValue\",\"value\":\"schema:value\",\"IdentityProof\":\"toot:IdentityProof\",\"discoverable\":\"toot:discoverable\",\"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\",\"Hashtag\":\"as:Hashtag\",\"focalPoint\":{\"@container\":\"@list\",\"@id\":\"toot:focalPoint\"}}],\"id\":\"https://framapiaf.org/users/tcit\",\"type\":\"Person\",\"following\":\"https://framapiaf.org/users/tcit/following\",\"followers\":\"https://framapiaf.org/users/tcit/followers\",\"inbox\":\"https://framapiaf.org/users/tcit/inbox\",\"outbox\":\"https://framapiaf.org/users/tcit/outbox\",\"featured\":\"https://framapiaf.org/users/tcit/collections/featured\",\"preferredUsername\":\"tcit\",\"name\":\"💼 Thomas Citharel (Work)\",\"summary\":\"\\u003cp\\u003e\\u003ca href=\\\"https://framapiaf.org/tags/Framasoft\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eFramasoft\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/FreeSoftware\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eFreeSoftware\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/Activism\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eActivism\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/wallabag\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003ewallabag\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/Federation\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eFederation\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/Nextcloud\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eNextcloud\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/Mobilizon\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eMobilizon\\u003c/span\\u003e\\u003c/a\\u003e \\u003ca href=\\\"https://framapiaf.org/tags/Libre\\\" class=\\\"mention hashtag\\\" rel=\\\"tag\\\"\\u003e#\\u003cspan\\u003eLibre\\u003c/span\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\",\"url\":\"https://framapiaf.org/@tcit\",\"manuallyApprovesFollowers\":false,\"discoverable\":false,\"devices\":\"https://framapiaf.org/users/tcit/collections/devices\",\"publicKey\":{\"id\":\"https://framapiaf.org/users/tcit#main-key\",\"owner\":\"https://framapiaf.org/users/tcit\",\"publicKeyPem\":\"-----BEGIN PUBLIC KEY-----\\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApscVCt06lrIiB5jT6Kqk\\nZZwPVoPkhR7HzoTGb8rnklZuOyP4goHIuBDnurklztkmDCaM7DbsUWAPgRVtwWFE\\nWuQrOenb7BPRe/m99pJfUTkBQU3IeuRMD/5Fc3OTIhHQOltTSiB900srCUxjysfw\\nnV5JFciCz8YAXTNJZD34qyv8DbtC/pCJM7wMd9Hl3ohxSPETa6CJUaTdlNwlYJa2\\nMOMCj6/7Iv5oAg14FT9lwqS5lF7jPHk9Z7PNc2wPmNVgIYA2n9d5k7JY8TdM8iu4\\nHLnIbJuqDd1uitlYgy1qsdsxjv4U2Y7Nytc+3ZKHtGsCzUltYL5kC7uWrFpGoWo1\\n0QIDAQAB\\n-----END PUBLIC KEY-----\\n\"},\"tag\":[{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/activism\",\"name\":\"#activism\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/federation\",\"name\":\"#federation\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/framasoft\",\"name\":\"#framasoft\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/freesoftware\",\"name\":\"#freesoftware\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/libre\",\"name\":\"#libre\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/mobilizon\",\"name\":\"#mobilizon\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/nextcloud\",\"name\":\"#nextcloud\"},{\"type\":\"Hashtag\",\"href\":\"https://framapiaf.org/explore/wallabag\",\"name\":\"#wallabag\"}],\"attachment\":[{\"type\":\"PropertyValue\",\"name\":\"Personal account\",\"value\":\"\\u003ca href=\\\"https://social.tcit.fr/@tcit\\\" rel=\\\"me nofollow noopener noreferrer\\\" target=\\\"_blank\\\"\\u003e\\u003cspan class=\\\"invisible\\\"\\u003ehttps://\\u003c/span\\u003e\\u003cspan class=\\\"\\\"\\u003esocial.tcit.fr/@tcit\\u003c/span\\u003e\\u003cspan class=\\\"invisible\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\"},{\"type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Nantes, France\"},{\"type\":\"PropertyValue\",\"name\":\"Works at\",\"value\":\"\\u003cspan class=\\\"h-card\\\"\\u003e\\u003ca href=\\\"https://framapiaf.org/@Framasoft\\\" class=\\\"u-url mention\\\"\\u003e@\\u003cspan\\u003eFramasoft\\u003c/span\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\"},{\"type\":\"PropertyValue\",\"name\":\"Website\",\"value\":\"\\u003ca href=\\\"https://tcit.fr\\\" rel=\\\"me nofollow noopener noreferrer\\\" target=\\\"_blank\\\"\\u003e\\u003cspan class=\\\"invisible\\\"\\u003ehttps://\\u003c/span\\u003e\\u003cspan class=\\\"\\\"\\u003etcit.fr\\u003c/span\\u003e\\u003cspan class=\\\"invisible\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\"},{\"type\":\"IdentityProof\",\"name\":\"tcit\",\"signatureAlgorithm\":\"keybase\",\"signatureValue\":\"f66b45be42803010fe2f4d80e729b41bbe5ed056e2ff1286b7b5a5ea9c724cc70f\"}],\"endpoints\":{\"sharedInbox\":\"https://framapiaf.org/inbox\"},\"icon\":{\"type\":\"Image\",\"mediaType\":\"image/jpeg\",\"url\":\"https://framapiaf.s3.framasoft.org/framapiaf/accounts/avatars/000/000/001/original/da0cad7ffd20eb61.jpg\"},\"image\":{\"type\":\"Image\",\"mediaType\":\"image/jpeg\",\"url\":\"https://framapiaf.s3.framasoft.org/framapiaf/accounts/headers/000/000/001/original/198d058b3086d82d.jpg\"}}", + "headers": { + "Date": "Tue, 11 Aug 2020 15:54:52 GMT", + "Content-Type": "application/activity+json; charset=utf-8", + "Transfer-Encoding": "chunked", + "Connection": "keep-alive", + "Server": "Mastodon", + "X-Frame-Options": "DENY", + "X-Content-Type-Options": "nosniff", + "X-XSS-Protection": "1; mode=block", + "Vary": "Accept, Accept-Encoding, Origin", + "Cache-Control": "max-age=180, public", + "ETag": "W/\"923fe58bc4d4146bddfde1745eed4f39\"", + "X-Request-Id": "617c0d34-9f9f-4fb4-a104-a00537207b1e", + "X-Runtime": "0.003877", + "X-Cached": "EXPIRED", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains; preload" + }, + "status_code": 200, + "type": "ok" + } + } +] \ No newline at end of file