From d8c842a7713ab2c9dd49bdabfad4f5a1b6120fcf Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Thu, 17 May 2018 22:15:57 -0400 Subject: [PATCH 01/52] Add support for incoming remote unfollows --- lib/pleroma/user.ex | 24 ++++++++------ .../web/activity_pub/transmogrifier.ex | 18 ++++++++++ test/fixtures/mastodon-unfollow-activity.json | 33 +++++++++++++++++++ test/web/activity_pub/transmogrifier_test.exs | 24 ++++++++++++++ 4 files changed, 89 insertions(+), 10 deletions(-) create mode 100644 test/fixtures/mastodon-unfollow-activity.json diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 399a66787..6a8129ac8 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -404,18 +404,22 @@ def search(query, resolve) do from( u in User, select_merge: %{ - search_distance: fragment( - "? <-> (? || ?)", - ^query, - u.nickname, - u.name - )} + search_distance: + fragment( + "? <-> (? || ?)", + ^query, + u.nickname, + u.name + ) + } ) - q = from(s in subquery(inner), - order_by: s.search_distance, - limit: 20 - ) + q = + from( + s in subquery(inner), + order_by: s.search_distance, + limit: 20 + ) Repo.all(q) end diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 463d1e59d..0bec8c4dd 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -241,6 +241,24 @@ def handle_incoming( end end + def handle_incoming( + %{ + "type" => "Undo", + "object" => %{"type" => "Follow", "object" => followed}, + "actor" => follower, + "id" => id + } = data + ) do + with %User{local: true} = followed = User.get_cached_by_ap_id(followed), + %User{} = follower = User.get_or_fetch_by_ap_id(follower), + {:ok, activity} <- ActivityPub.unfollow(follower, followed, false) do + User.unfollow(follower, followed) + {:ok, activity} + else + e -> :error + end + end + # TODO # Accept # Undo for non-Announce diff --git a/test/fixtures/mastodon-unfollow-activity.json b/test/fixtures/mastodon-unfollow-activity.json new file mode 100644 index 000000000..022b47acd --- /dev/null +++ b/test/fixtures/mastodon-unfollow-activity.json @@ -0,0 +1,33 @@ +{ + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + { + "toot": "http://joinmastodon.org/ns#", + "sensitive": "as:sensitive", + "ostatus": "http://ostatus.org#", + "movedTo": "as:movedTo", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", + "inReplyToAtomUri": "ostatus:inReplyToAtomUri", + "conversation": "ostatus:conversation", + "atomUri": "ostatus:atomUri", + "Hashtag": "as:Hashtag", + "Emoji": "toot:Emoji" + } + ], + "signature": { + "type": "RsaSignature2017", + "signatureValue": "Kn1/UkAQGJVaXBfWLAHcnwHg8YMAUqlEaBuYLazAG+pz5hqivsyrBmPV186Xzr+B4ZLExA9+SnOoNx/GOz4hBm0kAmukNSILAsUd84tcJ2yT9zc1RKtembK4WiwOw7li0+maeDN0HaB6t+6eTqsCWmtiZpprhXD8V1GGT8yG7X24fQ9oFGn+ng7lasbcCC0988Y1eGqNe7KryxcPuQz57YkDapvtONzk8gyLTkZMV4De93MyRHq6GVjQVIgtiYabQAxrX6Q8C+4P/jQoqdWJHEe+MY5JKyNaT/hMPt2Md1ok9fZQBGHlErk22/zy8bSN19GdG09HmIysBUHRYpBLig==", + "creator": "http://mastodon.example.org/users/admin#main-key", + "created": "2018-02-17T13:29:31Z" + }, + "type": "Undo", + "object": { + "type": "Follow", + "object": "http://localtesting.pleroma.lol/users/lain", + "nickname": "lain", + "id": "http://mastodon.example.org/users/admin#follows/2", + "actor": "http://mastodon.example.org/users/admin" + }, + "actor": "http://mastodon.example.org/users/admin" +} diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index a3408da9d..8ed7147f4 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -260,6 +260,30 @@ test "it works for incoming unannounces with an existing notice" do assert data["object"]["id"] == "http://mastodon.example.org/users/admin/statuses/99542391527669785/activity" end + + test "it works for incomming unfollows" do + user = insert(:user) + + follow_data = + File.read!("test/fixtures/mastodon-follow-activity.json") + |> Poison.decode!() + |> Map.put("object", user.ap_id) + + {:ok, %Activity{data: _, local: false}} = Transmogrifier.handle_incoming(follow_data) + + data = + File.read!("test/fixtures/mastodon-unfollow-activity.json") + |> Poison.decode!() + |> Map.put("object", follow_data) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["type"] == "Undo" + assert data["object"]["type"] == "Follow" + assert data["actor"] == "http://mastodon.example.org/users/admin" + + refute User.following?(User.get_by_ap_id(data["actor"]), user) + end end describe "prepare outgoing" do From e6dc15b96cb971836211a1e57be1756936456c17 Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Thu, 17 May 2018 23:53:34 -0400 Subject: [PATCH 02/52] Undo formatting in user.ex --- .../web/activity_pub/transmogrifier.ex | 18 ---------- test/fixtures/mastodon-unfollow-activity.json | 33 ------------------- test/web/activity_pub/transmogrifier_test.exs | 24 -------------- 3 files changed, 75 deletions(-) delete mode 100644 test/fixtures/mastodon-unfollow-activity.json diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 0bec8c4dd..463d1e59d 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -241,24 +241,6 @@ def handle_incoming( end end - def handle_incoming( - %{ - "type" => "Undo", - "object" => %{"type" => "Follow", "object" => followed}, - "actor" => follower, - "id" => id - } = data - ) do - with %User{local: true} = followed = User.get_cached_by_ap_id(followed), - %User{} = follower = User.get_or_fetch_by_ap_id(follower), - {:ok, activity} <- ActivityPub.unfollow(follower, followed, false) do - User.unfollow(follower, followed) - {:ok, activity} - else - e -> :error - end - end - # TODO # Accept # Undo for non-Announce diff --git a/test/fixtures/mastodon-unfollow-activity.json b/test/fixtures/mastodon-unfollow-activity.json deleted file mode 100644 index 022b47acd..000000000 --- a/test/fixtures/mastodon-unfollow-activity.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "@context": [ - "https://www.w3.org/ns/activitystreams", - "https://w3id.org/security/v1", - { - "toot": "http://joinmastodon.org/ns#", - "sensitive": "as:sensitive", - "ostatus": "http://ostatus.org#", - "movedTo": "as:movedTo", - "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", - "inReplyToAtomUri": "ostatus:inReplyToAtomUri", - "conversation": "ostatus:conversation", - "atomUri": "ostatus:atomUri", - "Hashtag": "as:Hashtag", - "Emoji": "toot:Emoji" - } - ], - "signature": { - "type": "RsaSignature2017", - "signatureValue": "Kn1/UkAQGJVaXBfWLAHcnwHg8YMAUqlEaBuYLazAG+pz5hqivsyrBmPV186Xzr+B4ZLExA9+SnOoNx/GOz4hBm0kAmukNSILAsUd84tcJ2yT9zc1RKtembK4WiwOw7li0+maeDN0HaB6t+6eTqsCWmtiZpprhXD8V1GGT8yG7X24fQ9oFGn+ng7lasbcCC0988Y1eGqNe7KryxcPuQz57YkDapvtONzk8gyLTkZMV4De93MyRHq6GVjQVIgtiYabQAxrX6Q8C+4P/jQoqdWJHEe+MY5JKyNaT/hMPt2Md1ok9fZQBGHlErk22/zy8bSN19GdG09HmIysBUHRYpBLig==", - "creator": "http://mastodon.example.org/users/admin#main-key", - "created": "2018-02-17T13:29:31Z" - }, - "type": "Undo", - "object": { - "type": "Follow", - "object": "http://localtesting.pleroma.lol/users/lain", - "nickname": "lain", - "id": "http://mastodon.example.org/users/admin#follows/2", - "actor": "http://mastodon.example.org/users/admin" - }, - "actor": "http://mastodon.example.org/users/admin" -} diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 8ed7147f4..a3408da9d 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -260,30 +260,6 @@ test "it works for incoming unannounces with an existing notice" do assert data["object"]["id"] == "http://mastodon.example.org/users/admin/statuses/99542391527669785/activity" end - - test "it works for incomming unfollows" do - user = insert(:user) - - follow_data = - File.read!("test/fixtures/mastodon-follow-activity.json") - |> Poison.decode!() - |> Map.put("object", user.ap_id) - - {:ok, %Activity{data: _, local: false}} = Transmogrifier.handle_incoming(follow_data) - - data = - File.read!("test/fixtures/mastodon-unfollow-activity.json") - |> Poison.decode!() - |> Map.put("object", follow_data) - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - - assert data["type"] == "Undo" - assert data["object"]["type"] == "Follow" - assert data["actor"] == "http://mastodon.example.org/users/admin" - - refute User.following?(User.get_by_ap_id(data["actor"]), user) - end end describe "prepare outgoing" do From 8d11bae0d5e649f9dc0570b24ee5c4c74b8b463f Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Thu, 17 May 2018 23:55:00 -0400 Subject: [PATCH 03/52] Revert "Undo formatting in user.ex" This reverts commit e6dc15b96cb971836211a1e57be1756936456c17. --- .../web/activity_pub/transmogrifier.ex | 18 ++++++++++ test/fixtures/mastodon-unfollow-activity.json | 33 +++++++++++++++++++ test/web/activity_pub/transmogrifier_test.exs | 24 ++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 test/fixtures/mastodon-unfollow-activity.json diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 463d1e59d..0bec8c4dd 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -241,6 +241,24 @@ def handle_incoming( end end + def handle_incoming( + %{ + "type" => "Undo", + "object" => %{"type" => "Follow", "object" => followed}, + "actor" => follower, + "id" => id + } = data + ) do + with %User{local: true} = followed = User.get_cached_by_ap_id(followed), + %User{} = follower = User.get_or_fetch_by_ap_id(follower), + {:ok, activity} <- ActivityPub.unfollow(follower, followed, false) do + User.unfollow(follower, followed) + {:ok, activity} + else + e -> :error + end + end + # TODO # Accept # Undo for non-Announce diff --git a/test/fixtures/mastodon-unfollow-activity.json b/test/fixtures/mastodon-unfollow-activity.json new file mode 100644 index 000000000..022b47acd --- /dev/null +++ b/test/fixtures/mastodon-unfollow-activity.json @@ -0,0 +1,33 @@ +{ + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + { + "toot": "http://joinmastodon.org/ns#", + "sensitive": "as:sensitive", + "ostatus": "http://ostatus.org#", + "movedTo": "as:movedTo", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", + "inReplyToAtomUri": "ostatus:inReplyToAtomUri", + "conversation": "ostatus:conversation", + "atomUri": "ostatus:atomUri", + "Hashtag": "as:Hashtag", + "Emoji": "toot:Emoji" + } + ], + "signature": { + "type": "RsaSignature2017", + "signatureValue": "Kn1/UkAQGJVaXBfWLAHcnwHg8YMAUqlEaBuYLazAG+pz5hqivsyrBmPV186Xzr+B4ZLExA9+SnOoNx/GOz4hBm0kAmukNSILAsUd84tcJ2yT9zc1RKtembK4WiwOw7li0+maeDN0HaB6t+6eTqsCWmtiZpprhXD8V1GGT8yG7X24fQ9oFGn+ng7lasbcCC0988Y1eGqNe7KryxcPuQz57YkDapvtONzk8gyLTkZMV4De93MyRHq6GVjQVIgtiYabQAxrX6Q8C+4P/jQoqdWJHEe+MY5JKyNaT/hMPt2Md1ok9fZQBGHlErk22/zy8bSN19GdG09HmIysBUHRYpBLig==", + "creator": "http://mastodon.example.org/users/admin#main-key", + "created": "2018-02-17T13:29:31Z" + }, + "type": "Undo", + "object": { + "type": "Follow", + "object": "http://localtesting.pleroma.lol/users/lain", + "nickname": "lain", + "id": "http://mastodon.example.org/users/admin#follows/2", + "actor": "http://mastodon.example.org/users/admin" + }, + "actor": "http://mastodon.example.org/users/admin" +} diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index a3408da9d..8ed7147f4 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -260,6 +260,30 @@ test "it works for incoming unannounces with an existing notice" do assert data["object"]["id"] == "http://mastodon.example.org/users/admin/statuses/99542391527669785/activity" end + + test "it works for incomming unfollows" do + user = insert(:user) + + follow_data = + File.read!("test/fixtures/mastodon-follow-activity.json") + |> Poison.decode!() + |> Map.put("object", user.ap_id) + + {:ok, %Activity{data: _, local: false}} = Transmogrifier.handle_incoming(follow_data) + + data = + File.read!("test/fixtures/mastodon-unfollow-activity.json") + |> Poison.decode!() + |> Map.put("object", follow_data) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["type"] == "Undo" + assert data["object"]["type"] == "Follow" + assert data["actor"] == "http://mastodon.example.org/users/admin" + + refute User.following?(User.get_by_ap_id(data["actor"]), user) + end end describe "prepare outgoing" do From 6604bea9d03c2a0eb48cd08d95de88a31656e181 Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Thu, 17 May 2018 23:56:47 -0400 Subject: [PATCH 04/52] actually rvert those changes --- lib/pleroma/user.ex | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 6a8129ac8..399a66787 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -404,22 +404,18 @@ def search(query, resolve) do from( u in User, select_merge: %{ - search_distance: - fragment( - "? <-> (? || ?)", - ^query, - u.nickname, - u.name - ) - } + search_distance: fragment( + "? <-> (? || ?)", + ^query, + u.nickname, + u.name + )} ) - q = - from( - s in subquery(inner), - order_by: s.search_distance, - limit: 20 - ) + q = from(s in subquery(inner), + order_by: s.search_distance, + limit: 20 + ) Repo.all(q) end From 0ec1abb3b65d9885e81a470efcc5b7437c4f8d4c Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Fri, 18 May 2018 18:09:56 -0400 Subject: [PATCH 05/52] Add federated blocks --- lib/pleroma/web/activity_pub/activity_pub.ex | 23 ++++++++++++ .../web/activity_pub/transmogrifier.ex | 18 ++++++++++ lib/pleroma/web/activity_pub/utils.ex | 35 +++++++++++++++++++ 3 files changed, 76 insertions(+) diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 491ad3705..48eba36fd 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -199,6 +199,29 @@ def delete(%Object{data: %{"id" => id, "actor" => actor}} = object, local \\ tru end end + def block(blocker, blocked, local \\ true) do + follow_activity = fetch_latest_follow(blocker, blocked) + + if follow_activity do + unfollow(blocker, blocked, local) + end + + with block_data <- make_block_data(blocker, blocked), + {:ok, activity} <- insert(block_data, local), + :ok <- maybe_federate(activity) do + {:ok, activity} + end + end + + def unblock(blocker, blocked, local \\ true) do + with %Activity{} = block_activity <- fetch_latest_block(blocker, blocked), + unblock_data <- make_unblock_data(blocker, blocked, block_activity), + {:ok, activity} <- insert(unblock_data, local), + :ok <- maybe_federate(activity) do + {:ok, activity} + end + end + def fetch_activities_for_context(context, opts \\ %{}) do public = ["https://www.w3.org/ns/activitystreams#Public"] diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 0bec8c4dd..cc0033a5f 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -259,6 +259,24 @@ def handle_incoming( end end + def handle_incoming(%{"type" => "Undo", "object" => object_id} = data) do + object = Object.get_by_ap_id(object_id).data + data = Map.put(data, "object", object) + + handle_incoming(data) + end + + def handle_incoming(%{"type" => "Block", "object" => blocked, "actor" => blocker, "id" => id} = data) do + with %User{local: true} = blocked = User.get_cached_by_ap_id(blocked), + %User{} = blocker = User.get_or_fetch_by_ap_id(blocker), + {:ok, activity} <- ActivityPub.block(blocker, blocked, false) do + User.unfollow(follower, followed) + User.block(blocker, blocked.ap_id) + {:ok, activity} + else + e -> :error + end + end # TODO # Accept # Undo for non-Announce diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index f98545336..c29fc6b07 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -322,6 +322,41 @@ def make_unfollow_data(follower, followed, follow_activity) do } end + #### Block-related helpers + def fetch_latest_block(%User{ap_id: blocker_id}, %User{ap_id: blocked_id}) do + query = + from( + activity in Activity, + where: + fragment( + "? @> ?", + activity.data, + ^%{type: "Block", actor: blocker_id, object: blocked_id} + ), + order_by: [desc: :id], + limit: 1 + ) + + Repo.one(query) + end + + def make_block_data(blocker, blocked) do + %{ + "type" => "Block", + "actor" => blocker.ap_id, + "to" => [blocked.ap_id], + "object" => blocked.ap_id + } + end + + def make_unblock_data(blocker, blocked, block_activity) do + %{ + "type" => "Undo", + "actor" => blocker.ap_id, + "to" => [blocked.ap_id], + "object" => block_activity.data + } + end #### Create-related helpers def make_create_data(params, additional) do From da9744eb8481b4df527d0e360aa30be9ca6b5a3a Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Sat, 19 May 2018 20:57:37 -0400 Subject: [PATCH 06/52] Use correct variable names in unfollow --- lib/pleroma/web/activity_pub/transmogrifier.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index cc0033a5f..0d539c02c 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -270,7 +270,7 @@ def handle_incoming(%{"type" => "Block", "object" => blocked, "actor" => blocker with %User{local: true} = blocked = User.get_cached_by_ap_id(blocked), %User{} = blocker = User.get_or_fetch_by_ap_id(blocker), {:ok, activity} <- ActivityPub.block(blocker, blocked, false) do - User.unfollow(follower, followed) + User.unfollow(blocker, blocked) User.block(blocker, blocked.ap_id) {:ok, activity} else From 1e43de0f86ea632a313f9bf7434183a6db38f0b6 Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Sat, 19 May 2018 21:23:52 -0400 Subject: [PATCH 07/52] Formatting and add tests for blocks/unblocks --- lib/pleroma/user.ex | 24 ++++++---- .../web/activity_pub/transmogrifier.ex | 5 +- lib/pleroma/web/activity_pub/utils.ex | 1 + test/fixtures/mastodon-block-activity.json | 29 ++++++++++++ test/fixtures/mastodon-unblock-activity.json | 33 +++++++++++++ test/web/activity_pub/transmogrifier_test.exs | 46 +++++++++++++++++++ 6 files changed, 127 insertions(+), 11 deletions(-) create mode 100644 test/fixtures/mastodon-block-activity.json create mode 100644 test/fixtures/mastodon-unblock-activity.json diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 399a66787..6a8129ac8 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -404,18 +404,22 @@ def search(query, resolve) do from( u in User, select_merge: %{ - search_distance: fragment( - "? <-> (? || ?)", - ^query, - u.nickname, - u.name - )} + search_distance: + fragment( + "? <-> (? || ?)", + ^query, + u.nickname, + u.name + ) + } ) - q = from(s in subquery(inner), - order_by: s.search_distance, - limit: 20 - ) + q = + from( + s in subquery(inner), + order_by: s.search_distance, + limit: 20 + ) Repo.all(q) end diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 0d539c02c..fe0294c5c 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -266,7 +266,9 @@ def handle_incoming(%{"type" => "Undo", "object" => object_id} = data) do handle_incoming(data) end - def handle_incoming(%{"type" => "Block", "object" => blocked, "actor" => blocker, "id" => id} = data) do + def handle_incoming( + %{"type" => "Block", "object" => blocked, "actor" => blocker, "id" => id} = data + ) do with %User{local: true} = blocked = User.get_cached_by_ap_id(blocked), %User{} = blocker = User.get_or_fetch_by_ap_id(blocker), {:ok, activity} <- ActivityPub.block(blocker, blocked, false) do @@ -277,6 +279,7 @@ def handle_incoming(%{"type" => "Block", "object" => blocked, "actor" => blocker e -> :error end end + # TODO # Accept # Undo for non-Announce diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index c29fc6b07..846dd97c2 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -357,6 +357,7 @@ def make_unblock_data(blocker, blocked, block_activity) do "object" => block_activity.data } end + #### Create-related helpers def make_create_data(params, additional) do diff --git a/test/fixtures/mastodon-block-activity.json b/test/fixtures/mastodon-block-activity.json new file mode 100644 index 000000000..186719d2c --- /dev/null +++ b/test/fixtures/mastodon-block-activity.json @@ -0,0 +1,29 @@ +{ + "type": "Block", + "signature": { + "type": "RsaSignature2017", + "signatureValue": "Kn1/UkAQGJVaXBfWLAHcnwHg8YMAUqlEaBuYLazAG+pz5hqivsyrBmPV186Xzr+B4ZLExA9+SnOoNx/GOz4hBm0kAmukNSILAsUd84tcJ2yT9zc1RKtembK4WiwOw7li0+maeDN0HaB6t+6eTqsCWmtiZpprhXD8V1GGT8yG7X24fQ9oFGn+ng7lasbcCC0988Y1eGqNe7KryxcPuQz57YkDapvtONzk8gyLTkZMV4De93MyRHq6GVjQVIgtiYabQAxrX6Q8C+4P/jQoqdWJHEe+MY5JKyNaT/hMPt2Md1ok9fZQBGHlErk22/zy8bSN19GdG09HmIysBUHRYpBLig==", + "creator": "http://mastodon.example.org/users/admin#main-key", + "created": "2018-02-17T13:29:31Z" + }, + "object": "http://localtesting.pleroma.lol/users/lain", + "nickname": "lain", + "id": "http://mastodon.example.org/users/admin#follows/2", + "actor": "http://mastodon.example.org/users/admin", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + { + "toot": "http://joinmastodon.org/ns#", + "sensitive": "as:sensitive", + "ostatus": "http://ostatus.org#", + "movedTo": "as:movedTo", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", + "inReplyToAtomUri": "ostatus:inReplyToAtomUri", + "conversation": "ostatus:conversation", + "atomUri": "ostatus:atomUri", + "Hashtag": "as:Hashtag", + "Emoji": "toot:Emoji" + } + ] +} diff --git a/test/fixtures/mastodon-unblock-activity.json b/test/fixtures/mastodon-unblock-activity.json new file mode 100644 index 000000000..53b2f42a8 --- /dev/null +++ b/test/fixtures/mastodon-unblock-activity.json @@ -0,0 +1,33 @@ +{ + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + { + "toot": "http://joinmastodon.org/ns#", + "sensitive": "as:sensitive", + "ostatus": "http://ostatus.org#", + "movedTo": "as:movedTo", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", + "inReplyToAtomUri": "ostatus:inReplyToAtomUri", + "conversation": "ostatus:conversation", + "atomUri": "ostatus:atomUri", + "Hashtag": "as:Hashtag", + "Emoji": "toot:Emoji" + } + ], + "signature": { + "type": "RsaSignature2017", + "signatureValue": "Kn1/UkAQGJVaXBfWLAHcnwHg8YMAUqlEaBuYLazAG+pz5hqivsyrBmPV186Xzr+B4ZLExA9+SnOoNx/GOz4hBm0kAmukNSILAsUd84tcJ2yT9zc1RKtembK4WiwOw7li0+maeDN0HaB6t+6eTqsCWmtiZpprhXD8V1GGT8yG7X24fQ9oFGn+ng7lasbcCC0988Y1eGqNe7KryxcPuQz57YkDapvtONzk8gyLTkZMV4De93MyRHq6GVjQVIgtiYabQAxrX6Q8C+4P/jQoqdWJHEe+MY5JKyNaT/hMPt2Md1ok9fZQBGHlErk22/zy8bSN19GdG09HmIysBUHRYpBLig==", + "creator": "http://mastodon.example.org/users/admin#main-key", + "created": "2018-02-17T13:29:31Z" + }, + "type": "Undo", + "object": { + "type": "Block", + "object": "http://localtesting.pleroma.lol/users/lain", + "nickname": "lain", + "id": "http://mastodon.example.org/users/admin#follows/2", + "actor": "http://mastodon.example.org/users/admin" + }, + "actor": "http://mastodon.example.org/users/admin" +} diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 8ed7147f4..0ca00a07e 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -280,10 +280,56 @@ test "it works for incomming unfollows" do assert data["type"] == "Undo" assert data["object"]["type"] == "Follow" + assert data["object"]["object"] == user.ap_id assert data["actor"] == "http://mastodon.example.org/users/admin" refute User.following?(User.get_by_ap_id(data["actor"]), user) end + + test "it works for incoming blocks" do + user = insert(:user) + + data = + File.read!("test/fixtures/mastodon-block-activity.json") + |> Poison.decode!() + |> Map.put("object", user.ap_id) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["type"] == "Block" + assert data["object"] == user.ap_id + assert data["actor"] == "https://mastodon.example.org/users/admin" + + blocker = User.get_by_ap_id(data["actor"]) + + assert User.blocks?(blocker, user.ap_id) + end + + test "it works for incoming unblocks" do + user = insert(:user) + + block_data = + File.read!("test/fixtures/mastodon-block-activity.json") + |> Poison.decode!() + |> Map.put("object", user.ap_id) + + {:ok, %Activity{data: _, local: false}} = Transmogrifier.handle_incoming(block_data) + + data = + File.read!("test/fixtures/mastodon-unblock-activity.json") + |> Poison.decode!() + |> Map.put("object", block_data) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + assert data["type"] == "Undo" + assert data["object"]["type"] == "Block" + assert data["object"]["object"] == user.ap_id + assert data["actor"] == "https://mastodon.example.org/users/admin" + + blocker = User.get_by_ap_id(data["actor"]) + + refute User.blocks?(blocker, user.ap_id) + end end describe "prepare outgoing" do From 3b706ea493cbb3ee1202fba96d3c2e509c07fb64 Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Sat, 19 May 2018 21:34:30 -0400 Subject: [PATCH 08/52] Remove handler for incoming undos with object references --- lib/pleroma/web/activity_pub/transmogrifier.ex | 7 ------- 1 file changed, 7 deletions(-) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index fe0294c5c..887ffe2d0 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -259,13 +259,6 @@ def handle_incoming( end end - def handle_incoming(%{"type" => "Undo", "object" => object_id} = data) do - object = Object.get_by_ap_id(object_id).data - data = Map.put(data, "object", object) - - handle_incoming(data) - end - def handle_incoming( %{"type" => "Block", "object" => blocked, "actor" => blocker, "id" => id} = data ) do From a9141d88aad331cfe6573e1d6b3d77f5dab70be7 Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Sat, 19 May 2018 22:02:13 -0400 Subject: [PATCH 09/52] Pass user instead of their ap_id to User.block --- lib/pleroma/web/activity_pub/transmogrifier.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 887ffe2d0..47b84a469 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -266,7 +266,7 @@ def handle_incoming( %User{} = blocker = User.get_or_fetch_by_ap_id(blocker), {:ok, activity} <- ActivityPub.block(blocker, blocked, false) do User.unfollow(blocker, blocked) - User.block(blocker, blocked.ap_id) + User.block(blocker, blocked) {:ok, activity} else e -> :error From d46393f6efd6475bb20b6a12a7c6ebf800f6c5b5 Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Sun, 20 May 2018 02:15:56 -0400 Subject: [PATCH 10/52] Fix test for blocks --- test/web/activity_pub/transmogrifier_test.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 0ca00a07e..1d38661eb 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -298,7 +298,7 @@ test "it works for incoming blocks" do assert data["type"] == "Block" assert data["object"] == user.ap_id - assert data["actor"] == "https://mastodon.example.org/users/admin" + assert data["actor"] == "http://mastodon.example.org/users/admin" blocker = User.get_by_ap_id(data["actor"]) From e55c6f311b8f459402134351230a5ff9700a8ff0 Mon Sep 17 00:00:00 2001 From: Thog Date: Sun, 20 May 2018 18:05:34 +0200 Subject: [PATCH 11/52] Migrate to comeonin 4 and Cachex 3 Also fix some warning in the code and add a missing alias --- config/test.exs | 2 +- lib/pleroma/application.ex | 8 ++++++-- lib/pleroma/object.ex | 18 +++++++---------- lib/pleroma/user.ex | 12 +++++------ .../web/activity_pub/transmogrifier.ex | 14 ++++++------- .../web/http_signatures/http_signatures.ex | 1 + .../mastodon_api/mastodon_api_controller.ex | 6 +----- mix.exs | 5 +++-- mix.lock | 20 ++++++++----------- .../views/notification_view_test.exs | 2 +- test/web/twitter_api/views/user_view_test.exs | 2 +- 11 files changed, 42 insertions(+), 48 deletions(-) diff --git a/config/test.exs b/config/test.exs index 0c73f892a..1bd11dee4 100644 --- a/config/test.exs +++ b/config/test.exs @@ -21,7 +21,7 @@ pool: Ecto.Adapters.SQL.Sandbox # Reduce hash rounds for testing -config :comeonin, :pbkdf2_rounds, 1 +config :pbkdf2_elixir, rounds: 1 config :pleroma, :websub, Pleroma.Web.WebsubMock config :pleroma, :ostatus, Pleroma.Web.OStatusMock diff --git a/lib/pleroma/application.ex b/lib/pleroma/application.ex index e1e3bcd63..a89728471 100644 --- a/lib/pleroma/application.ex +++ b/lib/pleroma/application.ex @@ -5,6 +5,7 @@ defmodule Pleroma.Application do # for more information on OTP Applications def start(_type, _args) do import Supervisor.Spec + import Cachex.Spec # Define workers and child supervisors to be supervised children = @@ -28,8 +29,11 @@ def start(_type, _args) do [ :idempotency_cache, [ - default_ttl: :timer.seconds(6 * 60 * 60), - ttl_interval: :timer.seconds(60), + expiration: + expiration( + default: :timer.seconds(6 * 60 * 60), + interval: :timer.seconds(60) + ), limit: 2500 ] ], diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex index 558e151b0..ff2af4a6f 100644 --- a/lib/pleroma/object.ex +++ b/lib/pleroma/object.ex @@ -33,19 +33,15 @@ def get_cached_by_ap_id(ap_id) do else key = "object:#{ap_id}" - Cachex.get!( - :user_cache, - key, - fallback: fn _ -> - object = get_by_ap_id(ap_id) + Cachex.fetch!(:user_cache, key, fn _ -> + object = get_by_ap_id(ap_id) - if object do - {:commit, object} - else - {:ignore, object} - end + if object do + {:commit, object} + else + {:ignore, object} end - ) + end) end end diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 6a8129ac8..690cc7cf3 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -223,9 +223,9 @@ def get_by_ap_id(ap_id) do def update_and_set_cache(changeset) do with {:ok, user} <- Repo.update(changeset) do - Cachex.set(:user_cache, "ap_id:#{user.ap_id}", user) - Cachex.set(:user_cache, "nickname:#{user.nickname}", user) - Cachex.set(:user_cache, "user_info:#{user.id}", user_info(user)) + Cachex.put(:user_cache, "ap_id:#{user.ap_id}", user) + Cachex.put(:user_cache, "nickname:#{user.nickname}", user) + Cachex.put(:user_cache, "user_info:#{user.id}", user_info(user)) {:ok, user} else e -> e @@ -239,12 +239,12 @@ def invalidate_cache(user) do def get_cached_by_ap_id(ap_id) do key = "ap_id:#{ap_id}" - Cachex.get!(:user_cache, key, fallback: fn _ -> get_by_ap_id(ap_id) end) + Cachex.fetch!(:user_cache, key, fn _ -> get_by_ap_id(ap_id) end) end def get_cached_by_nickname(nickname) do key = "nickname:#{nickname}" - Cachex.get!(:user_cache, key, fallback: fn _ -> get_or_fetch_by_nickname(nickname) end) + Cachex.fetch!(:user_cache, key, fn _ -> get_or_fetch_by_nickname(nickname) end) end def get_by_nickname(nickname) do @@ -260,7 +260,7 @@ def get_by_nickname_or_email(nickname_or_email) do def get_cached_user_info(user) do key = "user_info:#{user.id}" - Cachex.get!(:user_cache, key, fallback: fn _ -> user_info(user) end) + Cachex.fetch!(:user_cache, key, fn _ -> user_info(user) end) end def fetch_by_nickname(nickname) do diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index a31452a63..7d6fd8632 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -229,7 +229,7 @@ def handle_incoming( "object" => %{"type" => "Announce", "object" => object_id}, "actor" => actor, "id" => id - } = data + } = _data ) do with %User{} = actor <- User.get_or_fetch_by_ap_id(actor), {:ok, object} <- @@ -237,7 +237,7 @@ def handle_incoming( {:ok, activity, _, _} <- ActivityPub.unannounce(actor, object, id, false) do {:ok, activity} else - e -> :error + _e -> :error end end @@ -247,7 +247,7 @@ def handle_incoming( "object" => %{"type" => "Like", "object" => object_id}, "actor" => actor, "id" => id - } = data + } = _data ) do with %User{} = actor <- User.get_or_fetch_by_ap_id(actor), {:ok, object} <- @@ -255,7 +255,7 @@ def handle_incoming( {:ok, activity, _, _} <- ActivityPub.unlike(actor, object, id, false) do {:ok, activity} else - e -> :error + _e -> :error end end @@ -516,10 +516,10 @@ def maybe_retire_websub(ap_id) do def maybe_fix_user_url(data) do if is_map(data["url"]) do - data = Map.put(data, "url", data["url"]["href"]) + Map.put(data, "url", data["url"]["href"]) + else + data end - - data end def maybe_fix_user_object(data) do diff --git a/lib/pleroma/web/http_signatures/http_signatures.ex b/lib/pleroma/web/http_signatures/http_signatures.ex index dd3f825db..4e0adbc1d 100644 --- a/lib/pleroma/web/http_signatures/http_signatures.ex +++ b/lib/pleroma/web/http_signatures/http_signatures.ex @@ -2,6 +2,7 @@ defmodule Pleroma.Web.HTTPSignatures do alias Pleroma.User alias Pleroma.Web.ActivityPub.Utils + alias Pleroma.Web.ActivityPub.ActivityPub require Logger def split_signature(sig) do diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index 85f9c5b7b..e6365620e 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -275,11 +275,7 @@ def post_status(%{assigns: %{user: user}} = conn, %{"status" => _} = params) do end {:ok, activity} = - Cachex.get!( - :idempotency_cache, - idempotency_key, - fallback: fn _ -> CommonAPI.post(user, params) end - ) + Cachex.fetch!(:idempotency_cache, idempotency_key, fn _ -> CommonAPI.post(user, params) end) render(conn, StatusView, "status.json", %{activity: activity, for: user, as: :activity}) end diff --git a/mix.exs b/mix.exs index f49d2d04a..281687294 100644 --- a/mix.exs +++ b/mix.exs @@ -36,12 +36,13 @@ defp deps do {:postgrex, ">= 0.0.0"}, {:gettext, "~> 0.11"}, {:cowboy, "~> 1.0", override: true}, - {:comeonin, "~> 3.0"}, + {:comeonin, "~> 4.0"}, + {:pbkdf2_elixir, "~> 0.12"}, {:trailing_format_plug, "~> 0.0.5"}, {:html_sanitize_ex, "~> 1.3.0-rc1"}, {:phoenix_html, "~> 2.10"}, {:calendar, "~> 0.16.1"}, - {:cachex, "~> 2.1"}, + {:cachex, "~> 3.0"}, {:httpoison, "~> 1.1.0"}, {:jason, "~> 1.0"}, {:ex_machina, "~> 2.0", only: :test}, diff --git a/mix.lock b/mix.lock index 1f53df7de..2a826111c 100644 --- a/mix.lock +++ b/mix.lock @@ -1,42 +1,37 @@ %{ "bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], [], "hexpm"}, - "cachex": {:hex, :cachex, "2.1.0", "fad49b4e78d11c6c314e75bd8c9408f5b78cb065c047442798caed10803ee3be", [:mix], [{:eternal, "~> 1.1", [hex: :eternal, repo: "hexpm", optional: false]}], "hexpm"}, + "cachex": {:hex, :cachex, "3.0.2", "1351caa4e26e29f7d7ec1d29b53d6013f0447630bbf382b4fb5d5bad0209f203", [:mix], [{:eternal, "~> 1.2", [hex: :eternal, repo: "hexpm", optional: false]}, {:unsafe, "~> 1.0", [hex: :unsafe, repo: "hexpm", optional: false]}], "hexpm"}, "calendar": {:hex, :calendar, "0.16.1", "782327ad8bae7c797b887840dc4ddb933f05ce6e333e5b04964d7a5d5f79bde3", [:mix], [{:tzdata, "~> 0.5.8 or ~> 0.1.201603", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm"}, "certifi": {:hex, :certifi, "2.3.1", "d0f424232390bf47d82da8478022301c561cf6445b5b5fb6a84d49a9e76d2639", [:rebar3], [{:parse_trans, "3.2.0", [hex: :parse_trans, repo: "hexpm", optional: false]}], "hexpm"}, - "comeonin": {:hex, :comeonin, "3.2.0", "cb10995a22aed6812667efb3856f548818c85d85394d8132bc116fbd6995c1ef", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"}, - "con_cache": {:hex, :con_cache, "0.12.0", "2d961aec219aa5a914473873f348f5a6088292dc69d5192a9d25f8a1e13e9905", [:mix], [{:exactor, "~> 2.2.0", [hex: :exactor, optional: false]}]}, + "comeonin": {:hex, :comeonin, "4.1.1", "c7304fc29b45b897b34142a91122bc72757bc0c295e9e824999d5179ffc08416", [:mix], [{:argon2_elixir, "~> 1.2", [hex: :argon2_elixir, repo: "hexpm", optional: true]}, {:bcrypt_elixir, "~> 0.12.1 or ~> 1.0", [hex: :bcrypt_elixir, repo: "hexpm", optional: true]}, {:pbkdf2_elixir, "~> 0.12", [hex: :pbkdf2_elixir, repo: "hexpm", optional: true]}], "hexpm"}, "connection": {:hex, :connection, "1.0.4", "a1cae72211f0eef17705aaededacac3eb30e6625b04a6117c1b2db6ace7d5976", [:mix], [], "hexpm"}, "cowboy": {:hex, :cowboy, "1.1.2", "61ac29ea970389a88eca5a65601460162d370a70018afe6f949a29dca91f3bb0", [:rebar3], [{:cowlib, "~> 1.0.2", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "~> 1.3.2", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm"}, "cowlib": {:hex, :cowlib, "1.0.2", "9d769a1d062c9c3ac753096f868ca121e2730b9a377de23dec0f7e08b1df84ee", [:make], [], "hexpm"}, - "credo": {:hex, :credo, "0.9.1", "f021affa11b32a94dc2e807a6472ce0914289c9132f99644a97fc84432b202a1", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:poison, ">= 0.0.0", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm"}, + "credo": {:hex, :credo, "0.9.2", "841d316612f568beb22ba310d816353dddf31c2d94aa488ae5a27bb53760d0bf", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:poison, ">= 0.0.0", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm"}, "db_connection": {:hex, :db_connection, "1.1.3", "89b30ca1ef0a3b469b1c779579590688561d586694a3ce8792985d4d7e575a61", [:mix], [{:connection, "~> 1.0.2", [hex: :connection, repo: "hexpm", optional: false]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"}, "decimal": {:hex, :decimal, "1.5.0", "b0433a36d0e2430e3d50291b1c65f53c37d56f83665b43d79963684865beab68", [:mix], [], "hexpm"}, - "deppie": {:hex, :deppie, "1.1.0", "cfb6fcee7dfb64eb78cb8505537971a0805131899326ad469ef10df04520f451", [:mix], []}, "ecto": {:hex, :ecto, "2.2.10", "e7366dc82f48f8dd78fcbf3ab50985ceeb11cb3dc93435147c6e13f2cda0992e", [:mix], [{:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: true]}, {:decimal, "~> 1.2", [hex: :decimal, repo: "hexpm", optional: false]}, {:mariaex, "~> 0.8.0", [hex: :mariaex, repo: "hexpm", optional: true]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: true]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"}, - "elixir_make": {:hex, :elixir_make, "0.4.1", "6628b86053190a80b9072382bb9756a6c78624f208ec0ff22cb94c8977d80060", [:mix], [], "hexpm"}, "eternal": {:hex, :eternal, "1.2.0", "e2a6b6ce3b8c248f7dc31451aefca57e3bdf0e48d73ae5043229380a67614c41", [:mix], [], "hexpm"}, "ex_machina": {:hex, :ex_machina, "2.2.0", "fec496331e04fc2db2a1a24fe317c12c0c4a50d2beb8ebb3531ed1f0d84be0ed", [:mix], [{:ecto, "~> 2.1", [hex: :ecto, repo: "hexpm", optional: true]}], "hexpm"}, - "exactor": {:hex, :exactor, "2.2.3", "a6972f43bb6160afeb73e1d8ab45ba604cd0ac8b5244c557093f6e92ce582786", [:mix], []}, - "fs": {:hex, :fs, "2.12.0", "ad631efacc9a5683c8eaa1b274e24fa64a1b8eb30747e9595b93bec7e492e25e", [:rebar3], []}, "gettext": {:hex, :gettext, "0.15.0", "40a2b8ce33a80ced7727e36768499fc9286881c43ebafccae6bab731e2b2b8ce", [:mix], [], "hexpm"}, "hackney": {:hex, :hackney, "1.12.1", "8bf2d0e11e722e533903fe126e14d6e7e94d9b7983ced595b75f532e04b7fdc7", [:rebar3], [{:certifi, "2.3.1", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "5.1.1", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "1.0.1", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "1.0.2", [hex: :mimerl, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "1.1.1", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm"}, "html_sanitize_ex": {:hex, :html_sanitize_ex, "1.3.0", "f005ad692b717691203f940c686208aa3d8ffd9dd4bb3699240096a51fa9564e", [:mix], [{:mochiweb, "~> 2.15", [hex: :mochiweb, repo: "hexpm", optional: false]}], "hexpm"}, - "httpoison": {:hex, :httpoison, "1.1.0", "497949fb62924432f64a45269d20e6f61ecf35084ffa270917afcdb7cd4d8061", [:mix], [{:hackney, "~> 1.8", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"}, + "httpoison": {:hex, :httpoison, "1.1.1", "96ed7ab79f78a31081bb523eefec205fd2900a02cda6dbc2300e7a1226219566", [:mix], [{:hackney, "~> 1.8", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"}, "idna": {:hex, :idna, "5.1.1", "cbc3b2fa1645113267cc59c760bafa64b2ea0334635ef06dbac8801e42f7279c", [:rebar3], [{:unicode_util_compat, "0.3.1", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm"}, "jason": {:hex, :jason, "1.0.0", "0f7cfa9bdb23fed721ec05419bcee2b2c21a77e926bce0deda029b5adc716fe2", [:mix], [{:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm"}, "meck": {:hex, :meck, "0.8.9", "64c5c0bd8bcca3a180b44196265c8ed7594e16bcc845d0698ec6b4e577f48188", [:rebar3], [], "hexpm"}, "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm"}, "mime": {:hex, :mime, "1.2.0", "78adaa84832b3680de06f88f0997e3ead3b451a440d183d688085be2d709b534", [:mix], [], "hexpm"}, "mimerl": {:hex, :mimerl, "1.0.2", "993f9b0e084083405ed8252b99460c4f0563e41729ab42d9074fd5e52439be88", [:rebar3], [], "hexpm"}, - "mix_test_watch": {:hex, :mix_test_watch, "0.3.3", "70859889a8d1d43d1b75d69d87258a301f43209a17787cdb2bd9cab42adf271d", [:mix], [{:fs, "~> 2.12", [hex: :fs, optional: false]}]}, "mochiweb": {:hex, :mochiweb, "2.15.0", "e1daac474df07651e5d17cc1e642c4069c7850dc4508d3db7263a0651330aacc", [:rebar3], [], "hexpm"}, "mock": {:hex, :mock, "0.3.1", "994f00150f79a0ea50dc9d86134cd9ebd0d177ad60bd04d1e46336cdfdb98ff9", [:mix], [{:meck, "~> 0.8.8", [hex: :meck, repo: "hexpm", optional: false]}], "hexpm"}, "parse_trans": {:hex, :parse_trans, "3.2.0", "2adfa4daf80c14dc36f522cf190eb5c4ee3e28008fc6394397c16f62a26258c2", [:rebar3], [], "hexpm"}, + "pbkdf2_elixir": {:hex, :pbkdf2_elixir, "0.12.3", "6706a148809a29c306062862c803406e88f048277f6e85b68faf73291e820b84", [:mix], [], "hexpm"}, "phoenix": {:hex, :phoenix, "1.3.2", "2a00d751f51670ea6bc3f2ba4e6eb27ecb8a2c71e7978d9cd3e5de5ccf7378bd", [:mix], [{:cowboy, "~> 1.0", [hex: :cowboy, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 1.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:plug, "~> 1.3.3 or ~> 1.4", [hex: :plug, repo: "hexpm", optional: false]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm"}, "phoenix_ecto": {:hex, :phoenix_ecto, "3.3.0", "702f6e164512853d29f9d20763493f2b3bcfcb44f118af2bc37bb95d0801b480", [:mix], [{:ecto, "~> 2.1", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.9", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"}, - "phoenix_html": {:hex, :phoenix_html, "2.11.1", "77b6f7fbd252168c6ec4f573de648d37cc5258cda13266ef001fbf99267eb6f3", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"}, + "phoenix_html": {:hex, :phoenix_html, "2.11.2", "86ebd768258ba60a27f5578bec83095bdb93485d646fc4111db8844c316602d6", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"}, "phoenix_pubsub": {:hex, :phoenix_pubsub, "1.0.2", "bfa7fd52788b5eaa09cb51ff9fcad1d9edfeb68251add458523f839392f034c1", [:mix], [], "hexpm"}, - "plug": {:hex, :plug, "1.5.0", "224b25b4039bedc1eac149fb52ed456770b9678bbf0349cdd810460e1e09195b", [:mix], [{:cowboy, "~> 1.0.1 or ~> 1.1 or ~> 2.1", [hex: :cowboy, repo: "hexpm", optional: true]}, {:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}], "hexpm"}, + "plug": {:hex, :plug, "1.5.1", "1ff35bdecfb616f1a2b1c935ab5e4c47303f866cb929d2a76f0541e553a58165", [:mix], [{:cowboy, "~> 1.0.1 or ~> 1.1 or ~> 2.3", [hex: :cowboy, repo: "hexpm", optional: true]}, {:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}], "hexpm"}, "poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], [], "hexpm"}, "poolboy": {:hex, :poolboy, "1.5.1", "6b46163901cfd0a1b43d692657ed9d7e599853b3b21b95ae5ae0a777cf9b6ca8", [:rebar], [], "hexpm"}, "postgrex": {:hex, :postgrex, "0.13.5", "3d931aba29363e1443da167a4b12f06dcd171103c424de15e5f3fc2ba3e6d9c5", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm"}, @@ -45,4 +40,5 @@ "trailing_format_plug": {:hex, :trailing_format_plug, "0.0.7", "64b877f912cf7273bed03379936df39894149e35137ac9509117e59866e10e45", [:mix], [{:plug, "> 0.12.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"}, "tzdata": {:hex, :tzdata, "0.5.16", "13424d3afc76c68ff607f2df966c0ab4f3258859bbe3c979c9ed1606135e7352", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"}, "unicode_util_compat": {:hex, :unicode_util_compat, "0.3.1", "a1f612a7b512638634a603c8f401892afbf99b8ce93a45041f8aaca99cadb85e", [:rebar3], [], "hexpm"}, + "unsafe": {:hex, :unsafe, "1.0.0", "7c21742cd05380c7875546b023481d3a26f52df8e5dfedcb9f958f322baae305", [:mix], [], "hexpm"}, } diff --git a/test/web/twitter_api/views/notification_view_test.exs b/test/web/twitter_api/views/notification_view_test.exs index e3b140657..79eafda7d 100644 --- a/test/web/twitter_api/views/notification_view_test.exs +++ b/test/web/twitter_api/views/notification_view_test.exs @@ -24,7 +24,7 @@ test "A follow notification" do {:ok, follower} = User.follow(follower, user) {:ok, activity} = ActivityPub.follow(follower, user) - Cachex.set(:user_cache, "user_info:#{user.id}", User.user_info(Repo.get!(User, user.id))) + Cachex.put(:user_cache, "user_info:#{user.id}", User.user_info(Repo.get!(User, user.id))) [follow_notif] = Notification.for_user(user) represented = %{ diff --git a/test/web/twitter_api/views/user_view_test.exs b/test/web/twitter_api/views/user_view_test.exs index dd55c0b7e..9f8bf4cdc 100644 --- a/test/web/twitter_api/views/user_view_test.exs +++ b/test/web/twitter_api/views/user_view_test.exs @@ -31,7 +31,7 @@ test "A user" do User.follow(second_follower, user) User.follow(user, follower) {:ok, user} = User.update_follower_count(user) - Cachex.set(:user_cache, "user_info:#{user.id}", User.user_info(Repo.get!(User, user.id))) + Cachex.put(:user_cache, "user_info:#{user.id}", User.user_info(Repo.get!(User, user.id))) image = "http://localhost:4001/images/avi.png" banner = "http://localhost:4001/images/banner.png" From 56de0216ae36394dba1aa9bac6c931af67233658 Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Sun, 20 May 2018 19:45:05 -0400 Subject: [PATCH 12/52] pass user to User.blocks?/2 instead of ap_id --- test/web/activity_pub/transmogrifier_test.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 87fadece2..da55909bc 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -357,7 +357,7 @@ test "it works for incoming blocks" do blocker = User.get_by_ap_id(data["actor"]) - assert User.blocks?(blocker, user.ap_id) + assert User.blocks?(blocker, user) end test "it works for incoming unblocks" do From 89c5de90969cbd2b7cd5854c7209795443659062 Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Sun, 20 May 2018 21:01:14 -0400 Subject: [PATCH 13/52] Fix unfollows --- lib/pleroma/web/activity_pub/activity_pub.ex | 15 +++-- .../web/activity_pub/transmogrifier.ex | 4 +- lib/pleroma/web/activity_pub/utils.ex | 17 ++--- .../representers/activity_representer.ex | 2 +- test/fixtures/mastodon-unfollow-activity.json | 63 ++++++++++--------- test/web/activity_pub/activity_pub_test.exs | 2 +- 6 files changed, 53 insertions(+), 50 deletions(-) diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index a711e6b76..c2d540db9 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -192,12 +192,11 @@ def follow(follower, followed, activity_id \\ nil, local \\ true) do end end - def unfollow(follower, followed, local \\ true) do + def unfollow(follower, followed, activity_id \\ nil, local \\ true) do with %Activity{} = follow_activity <- fetch_latest_follow(follower, followed), - unfollow_data <- make_unfollow_data(follower, followed, follow_activity), + unfollow_data <- make_unfollow_data(follower, followed, follow_activity, activity_id), {:ok, activity} <- insert(unfollow_data, local), - :ok, - maybe_federate(activity) do + :ok <- maybe_federate(activity) do {:ok, activity} end end @@ -221,23 +220,23 @@ def delete(%Object{data: %{"id" => id, "actor" => actor}} = object, local \\ tru end end - def block(blocker, blocked, local \\ true) do + def block(blocker, blocked, activity_id \\ nil, local \\ true) do follow_activity = fetch_latest_follow(blocker, blocked) if follow_activity do unfollow(blocker, blocked, local) end - with block_data <- make_block_data(blocker, blocked), + with block_data <- make_block_data(blocker, blocked, activity_id), {:ok, activity} <- insert(block_data, local), :ok <- maybe_federate(activity) do {:ok, activity} end end - def unblock(blocker, blocked, local \\ true) do + def unblock(blocker, blocked, activity_id \\ nil, local \\ true) do with %Activity{} = block_activity <- fetch_latest_block(blocker, blocked), - unblock_data <- make_unblock_data(blocker, blocked, block_activity), + unblock_data <- make_unblock_data(blocker, blocked, block_activity, activity_id), {:ok, activity} <- insert(unblock_data, local), :ok <- maybe_federate(activity) do {:ok, activity} diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index d92ca9b65..20b1603df 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -251,7 +251,7 @@ def handle_incoming( ) do with %User{local: true} = followed = User.get_cached_by_ap_id(followed), %User{} = follower = User.get_or_fetch_by_ap_id(follower), - {:ok, activity} <- ActivityPub.unfollow(follower, followed, false) do + {:ok, activity} <- ActivityPub.unfollow(follower, followed, id, false) do User.unfollow(follower, followed) {:ok, activity} else @@ -264,7 +264,7 @@ def handle_incoming( ) do with %User{local: true} = blocked = User.get_cached_by_ap_id(blocked), %User{} = blocker = User.get_or_fetch_by_ap_id(blocker), - {:ok, activity} <- ActivityPub.block(blocker, blocked, false) do + {:ok, activity} <- ActivityPub.block(blocker, blocked, id, false) do User.unfollow(blocker, blocked) User.block(blocker, blocked) {:ok, activity} diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index 050413d51..acf23c53e 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -346,13 +346,14 @@ def remove_announce_from_object(%Activity{data: %{"actor" => actor}}, object) do #### Unfollow-related helpers - def make_unfollow_data(follower, followed, follow_activity) do - %{ + def make_unfollow_data(follower, followed, follow_activity, activity_id) do + data = %{ "type" => "Undo", "actor" => follower.ap_id, "to" => [followed.ap_id], - "object" => follow_activity.data["id"] + "object" => follow_activity.data } + if activity_id, do: Map.put(data, "id", activity_id), else: data end #### Block-related helpers @@ -373,22 +374,24 @@ def fetch_latest_block(%User{ap_id: blocker_id}, %User{ap_id: blocked_id}) do Repo.one(query) end - def make_block_data(blocker, blocked) do - %{ + def make_block_data(blocker, blocked, activity_id) do + data = %{ "type" => "Block", "actor" => blocker.ap_id, "to" => [blocked.ap_id], "object" => blocked.ap_id } + if activity_id, do: Map.put(data, "id", activity_id), else: data end - def make_unblock_data(blocker, blocked, block_activity) do - %{ + def make_unblock_data(blocker, blocked, block_activity, activity_id) do + data = %{ "type" => "Undo", "actor" => blocker.ap_id, "to" => [blocked.ap_id], "object" => block_activity.data } + if activity_id, do: Map.put(data, "id", activity_id), else: data end #### Create-related helpers diff --git a/lib/pleroma/web/twitter_api/representers/activity_representer.ex b/lib/pleroma/web/twitter_api/representers/activity_representer.ex index c2e1f07a5..57837205e 100644 --- a/lib/pleroma/web/twitter_api/representers/activity_representer.ex +++ b/lib/pleroma/web/twitter_api/representers/activity_representer.ex @@ -99,7 +99,7 @@ def to_map( ) do created_at = created_at |> Utils.date_to_asctime() - text = "#{user.nickname} undid the action at #{undid_activity}" + text = "#{user.nickname} undid the action at #{undid_activity["id"]}" %{ "id" => activity.id, diff --git a/test/fixtures/mastodon-unfollow-activity.json b/test/fixtures/mastodon-unfollow-activity.json index 022b47acd..ae5ab7c66 100644 --- a/test/fixtures/mastodon-unfollow-activity.json +++ b/test/fixtures/mastodon-unfollow-activity.json @@ -1,33 +1,34 @@ { - "@context": [ - "https://www.w3.org/ns/activitystreams", - "https://w3id.org/security/v1", - { - "toot": "http://joinmastodon.org/ns#", - "sensitive": "as:sensitive", - "ostatus": "http://ostatus.org#", - "movedTo": "as:movedTo", - "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", - "inReplyToAtomUri": "ostatus:inReplyToAtomUri", - "conversation": "ostatus:conversation", - "atomUri": "ostatus:atomUri", - "Hashtag": "as:Hashtag", - "Emoji": "toot:Emoji" - } - ], - "signature": { - "type": "RsaSignature2017", - "signatureValue": "Kn1/UkAQGJVaXBfWLAHcnwHg8YMAUqlEaBuYLazAG+pz5hqivsyrBmPV186Xzr+B4ZLExA9+SnOoNx/GOz4hBm0kAmukNSILAsUd84tcJ2yT9zc1RKtembK4WiwOw7li0+maeDN0HaB6t+6eTqsCWmtiZpprhXD8V1GGT8yG7X24fQ9oFGn+ng7lasbcCC0988Y1eGqNe7KryxcPuQz57YkDapvtONzk8gyLTkZMV4De93MyRHq6GVjQVIgtiYabQAxrX6Q8C+4P/jQoqdWJHEe+MY5JKyNaT/hMPt2Md1ok9fZQBGHlErk22/zy8bSN19GdG09HmIysBUHRYpBLig==", - "creator": "http://mastodon.example.org/users/admin#main-key", - "created": "2018-02-17T13:29:31Z" - }, - "type": "Undo", - "object": { - "type": "Follow", - "object": "http://localtesting.pleroma.lol/users/lain", - "nickname": "lain", - "id": "http://mastodon.example.org/users/admin#follows/2", - "actor": "http://mastodon.example.org/users/admin" - }, - "actor": "http://mastodon.example.org/users/admin" + "@context":[ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + { + "toot":"http://joinmastodon.org/ns#", + "sensitive":"as:sensitive", + "ostatus":"http://ostatus.org#", + "movedTo":"as:movedTo", + "manuallyApprovesFollowers":"as:manuallyApprovesFollowers", + "inReplyToAtomUri":"ostatus:inReplyToAtomUri", + "conversation":"ostatus:conversation", + "atomUri":"ostatus:atomUri", + "Hashtag":"as:Hashtag", + "Emoji":"toot:Emoji" + } + ], + "signature":{ + "type":"RsaSignature2017", + "signatureValue":"Kn1/UkAQGJVaXBfWLAHcnwHg8YMAUqlEaBuYLazAG+pz5hqivsyrBmPV186Xzr+B4ZLExA9+SnOoNx/GOz4hBm0kAmukNSILAsUd84tcJ2yT9zc1RKtembK4WiwOw7li0+maeDN0HaB6t+6eTqsCWmtiZpprhXD8V1GGT8yG7X24fQ9oFGn+ng7lasbcCC0988Y1eGqNe7KryxcPuQz57YkDapvtONzk8gyLTkZMV4De93MyRHq6GVjQVIgtiYabQAxrX6Q8C+4P/jQoqdWJHEe+MY5JKyNaT/hMPt2Md1ok9fZQBGHlErk22/zy8bSN19GdG09HmIysBUHRYpBLig==", + "creator":"http://mastodon.example.org/users/admin#main-key", + "created":"2018-02-17T13:29:31Z" + }, + "type":"Undo", + "object":{ + "type":"Follow", + "object":"http://localtesting.pleroma.lol/users/lain", + "nickname":"lain", + "id":"http://mastodon.example.org/users/admin#follows/2", + "actor":"http://mastodon.example.org/users/admin" + }, + "actor":"http://mastodon.example.org/users/admin", + "id": "http://mastodon.example.org/users/admin#follow/2/undo" } diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs index 9adce84b5..35f0deffe 100644 --- a/test/web/activity_pub/activity_pub_test.exs +++ b/test/web/activity_pub/activity_pub_test.exs @@ -425,7 +425,7 @@ test "creates an undo activity for the last follow" do assert activity.data["type"] == "Undo" assert activity.data["actor"] == follower.ap_id - assert activity.data["object"] == follow_activity.data["id"] + assert activity.data["object"]["id"] == follow_activity.data["id"] end end From c8a16f334dd6df12f90ee7f45b509642c8098b5b Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Sun, 20 May 2018 21:02:06 -0400 Subject: [PATCH 14/52] Format --- lib/pleroma/web/activity_pub/utils.ex | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index acf23c53e..3f88a4672 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -353,6 +353,7 @@ def make_unfollow_data(follower, followed, follow_activity, activity_id) do "to" => [followed.ap_id], "object" => follow_activity.data } + if activity_id, do: Map.put(data, "id", activity_id), else: data end @@ -381,6 +382,7 @@ def make_block_data(blocker, blocked, activity_id) do "to" => [blocked.ap_id], "object" => blocked.ap_id } + if activity_id, do: Map.put(data, "id", activity_id), else: data end @@ -391,6 +393,7 @@ def make_unblock_data(blocker, blocked, block_activity, activity_id) do "to" => [blocked.ap_id], "object" => block_activity.data } + if activity_id, do: Map.put(data, "id", activity_id), else: data end From 25733322140d13a08e723b9366646cf971a84381 Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Mon, 21 May 2018 04:35:43 -0400 Subject: [PATCH 15/52] Add undo block handler --- .../web/activity_pub/transmogrifier.ex | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 20b1603df..24e876efb 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -247,10 +247,10 @@ def handle_incoming( "object" => %{"type" => "Follow", "object" => followed}, "actor" => follower, "id" => id - } = data + } = _data ) do - with %User{local: true} = followed = User.get_cached_by_ap_id(followed), - %User{} = follower = User.get_or_fetch_by_ap_id(follower), + with %User{local: true} = followed <- User.get_cached_by_ap_id(followed), + %User{} = follower <- User.get_or_fetch_by_ap_id(follower), {:ok, activity} <- ActivityPub.unfollow(follower, followed, id, false) do User.unfollow(follower, followed) {:ok, activity} @@ -259,6 +259,23 @@ def handle_incoming( end end + def handle_incoming( + %{ + "type" => "Undo", + "object" => %{"type" => "Block", "object" => blocked}, + "actor" => blocker, + "id" => id + } = _data + ) do + with %User{local: true} = blocked <- User.get_cached_by_ap_id(blocked), + %User{} = blocker <- User.get_or_fetch_by_ap_id(blocker), + {:ok, activity} <- ActivityPub.unblock(blocker, blocked, id, false) do + {:ok, activity} + else + e -> :error + end + end + def handle_incoming( %{"type" => "Block", "object" => blocked, "actor" => blocker, "id" => id} = data ) do From f2d6c3a512d86ac632787c7cd98bc5147e74e598 Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Mon, 21 May 2018 04:36:20 -0400 Subject: [PATCH 16/52] Handle unfollows from OStatus --- .../web/ostatus/activity_representer.ex | 52 +++++++++---------- .../web/ostatus/handlers/unfollow_handler.ex | 17 ++++++ lib/pleroma/web/ostatus/ostatus.ex | 5 +- 3 files changed, 45 insertions(+), 29 deletions(-) create mode 100644 lib/pleroma/web/ostatus/handlers/unfollow_handler.ex diff --git a/lib/pleroma/web/ostatus/activity_representer.ex b/lib/pleroma/web/ostatus/activity_representer.ex index 64cadba1b..a9c2b89b4 100644 --- a/lib/pleroma/web/ostatus/activity_representer.ex +++ b/lib/pleroma/web/ostatus/activity_representer.ex @@ -232,7 +232,12 @@ def to_simple_form(%{data: %{"type" => "Follow"}} = activity, user, with_author) end # Only undos of follow for now. Will need to get redone once there are more - def to_simple_form(%{data: %{"type" => "Undo"}} = activity, user, with_author) do + def to_simple_form( + %{data: %{"type" => "Undo", "object" => %{"type" => "Follow"} = follow_activity}} = + activity, + user, + with_author + ) do h = fn str -> [to_charlist(str)] end updated_at = activity.data["published"] @@ -240,34 +245,25 @@ def to_simple_form(%{data: %{"type" => "Undo"}} = activity, user, with_author) d author = if with_author, do: [{:author, UserRepresenter.to_simple_form(user)}], else: [] - follow_activity = - if is_map(activity.data["object"]) do - Activity.get_by_ap_id(activity.data["object"]["id"]) - else - Activity.get_by_ap_id(activity.data["object"]) - end - mentions = (activity.recipients || []) |> get_mentions - - if follow_activity do - [ - {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/activity']}, - {:"activity:verb", ['http://activitystrea.ms/schema/1.0/unfollow']}, - {:id, h.(activity.data["id"])}, - {:title, ['#{user.nickname} stopped following #{follow_activity.data["object"]}']}, - {:content, [type: 'html'], - ['#{user.nickname} stopped following #{follow_activity.data["object"]}']}, - {:published, h.(inserted_at)}, - {:updated, h.(updated_at)}, - {:"activity:object", - [ - {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/person']}, - {:id, h.(follow_activity.data["object"])}, - {:uri, h.(follow_activity.data["object"])} - ]}, - {:link, [rel: 'self', type: ['application/atom+xml'], href: h.(activity.data["id"])], []} - ] ++ mentions ++ author - end + follow_activity = Activity.get_by_ap_id(follow_activity["id"]) + [ + {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/activity']}, + {:"activity:verb", ['http://activitystrea.ms/schema/1.0/unfollow']}, + {:id, h.(activity.data["id"])}, + {:title, ['#{user.nickname} stopped following #{follow_activity.data["object"]}']}, + {:content, [type: 'html'], + ['#{user.nickname} stopped following #{follow_activity.data["object"]}']}, + {:published, h.(inserted_at)}, + {:updated, h.(updated_at)}, + {:"activity:object", + [ + {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/person']}, + {:id, h.(follow_activity.data["object"])}, + {:uri, h.(follow_activity.data["object"])} + ]}, + {:link, [rel: 'self', type: ['application/atom+xml'], href: h.(activity.data["id"])], []} + ] ++ mentions ++ author end def to_simple_form(%{data: %{"type" => "Delete"}} = activity, user, with_author) do diff --git a/lib/pleroma/web/ostatus/handlers/unfollow_handler.ex b/lib/pleroma/web/ostatus/handlers/unfollow_handler.ex new file mode 100644 index 000000000..a115bf4c8 --- /dev/null +++ b/lib/pleroma/web/ostatus/handlers/unfollow_handler.ex @@ -0,0 +1,17 @@ +defmodule Pleroma.Web.OStatus.UnfollowHandler do + alias Pleroma.Web.{XML, OStatus} + alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.User + + def handle(entry, doc) do + with {:ok, actor} <- OStatus.find_make_or_update_user(doc), + id when not is_nil(id) <- XML.string_from_xpath("/entry/id", entry), + followed_uri when not is_nil(followed_uri) <- + XML.string_from_xpath("/entry/activity:object/id", entry), + {:ok, followed} <- OStatus.find_or_make_user(followed_uri), + {:ok, activity} <- ActivityPub.unfollow(actor, followed, id, false) do + User.unfollow(actor, followed) + {:ok, activity} + end + end +end diff --git a/lib/pleroma/web/ostatus/ostatus.ex b/lib/pleroma/web/ostatus/ostatus.ex index 5c4a1fd69..f0ff0624f 100644 --- a/lib/pleroma/web/ostatus/ostatus.ex +++ b/lib/pleroma/web/ostatus/ostatus.ex @@ -8,7 +8,7 @@ defmodule Pleroma.Web.OStatus do alias Pleroma.{Repo, User, Web, Object, Activity} alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.{WebFinger, Websub} - alias Pleroma.Web.OStatus.{FollowHandler, NoteHandler, DeleteHandler} + alias Pleroma.Web.OStatus.{FollowHandler, UnfollowHandler, NoteHandler, DeleteHandler} alias Pleroma.Web.ActivityPub.Transmogrifier def feed_path(user) do @@ -47,6 +47,9 @@ def handle_incoming(xml_string) do 'http://activitystrea.ms/schema/1.0/follow' -> with {:ok, activity} <- FollowHandler.handle(entry, doc), do: activity + 'http://activitystrea.ms/schema/1.0/unfollow' -> + with {:ok, activity} <- UnfollowHandler.handle(entry, doc), do: activity + 'http://activitystrea.ms/schema/1.0/share' -> with {:ok, activity, retweeted_activity} <- handle_share(entry, doc), do: [activity, retweeted_activity] From cc5373b846d7f816a3e78af342468f2ea8415b8d Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Mon, 21 May 2018 05:00:58 -0400 Subject: [PATCH 17/52] Fix unblock handling --- lib/pleroma/web/activity_pub/transmogrifier.ex | 1 + test/fixtures/mastodon-unblock-activity.json | 5 +++-- test/web/activity_pub/transmogrifier_test.exs | 8 ++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 24e876efb..b941fdf16 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -270,6 +270,7 @@ def handle_incoming( with %User{local: true} = blocked <- User.get_cached_by_ap_id(blocked), %User{} = blocker <- User.get_or_fetch_by_ap_id(blocker), {:ok, activity} <- ActivityPub.unblock(blocker, blocked, id, false) do + User.unblock(blocker, blocked) {:ok, activity} else e -> :error diff --git a/test/fixtures/mastodon-unblock-activity.json b/test/fixtures/mastodon-unblock-activity.json index 53b2f42a8..f4a2d30dd 100644 --- a/test/fixtures/mastodon-unblock-activity.json +++ b/test/fixtures/mastodon-unblock-activity.json @@ -26,8 +26,9 @@ "type": "Block", "object": "http://localtesting.pleroma.lol/users/lain", "nickname": "lain", - "id": "http://mastodon.example.org/users/admin#follows/2", + "id": "http://mastodon.example.org/users/admin#blocks/2", "actor": "http://mastodon.example.org/users/admin" }, - "actor": "http://mastodon.example.org/users/admin" + "actor": "http://mastodon.example.org/users/admin", + "id": "http://mastodon.example.org/users/admin#blocks/2/undo" } diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index da55909bc..cf6b1d0b5 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -316,7 +316,7 @@ test "it works for incoming unannounces with an existing notice" do "http://mastodon.example.org/users/admin/statuses/99542391527669785/activity" end - test "it works for incomming unfollows" do + test "it works for incomming unfollows with an existing follow" do user = insert(:user) follow_data = @@ -360,7 +360,7 @@ test "it works for incoming blocks" do assert User.blocks?(blocker, user) end - test "it works for incoming unblocks" do + test "it works for incoming unblocks with an existing block" do user = insert(:user) block_data = @@ -379,11 +379,11 @@ test "it works for incoming unblocks" do assert data["type"] == "Undo" assert data["object"]["type"] == "Block" assert data["object"]["object"] == user.ap_id - assert data["actor"] == "https://mastodon.example.org/users/admin" + assert data["actor"] == "http://mastodon.example.org/users/admin" blocker = User.get_by_ap_id(data["actor"]) - refute User.blocks?(blocker, user.ap_id) + refute User.blocks?(blocker, user) end end From d045b96f957e0698ecd0110ca240f0527e3fea43 Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Mon, 21 May 2018 05:11:13 -0400 Subject: [PATCH 18/52] Add tests for incoming unfollow over OStatus --- .../web/ostatus/activity_representer.ex | 1 + test/fixtures/unfollow.xml | 68 +++++++++++++++++++ test/web/ostatus/ostatus_test.exs | 24 +++++++ 3 files changed, 93 insertions(+) create mode 100644 test/fixtures/unfollow.xml diff --git a/lib/pleroma/web/ostatus/activity_representer.ex b/lib/pleroma/web/ostatus/activity_representer.ex index a9c2b89b4..4179d86c9 100644 --- a/lib/pleroma/web/ostatus/activity_representer.ex +++ b/lib/pleroma/web/ostatus/activity_representer.ex @@ -247,6 +247,7 @@ def to_simple_form( mentions = (activity.recipients || []) |> get_mentions follow_activity = Activity.get_by_ap_id(follow_activity["id"]) + [ {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/activity']}, {:"activity:verb", ['http://activitystrea.ms/schema/1.0/unfollow']}, diff --git a/test/fixtures/unfollow.xml b/test/fixtures/unfollow.xml new file mode 100644 index 000000000..7a8f8fd2e --- /dev/null +++ b/test/fixtures/unfollow.xml @@ -0,0 +1,68 @@ + + + GNU social + https://social.heldscal.la/api/statuses/user_timeline/23211.atom + lambadalambda timeline + Updates from lambadalambda on social.heldscal.la! + https://social.heldscal.la/avatar/23211-96-20170416114255.jpeg + 2017-05-07T09:54:49+00:00 + + http://activitystrea.ms/schema/1.0/person + https://social.heldscal.la/user/23211 + lambadalambda + Call me Deacon Blues. + + + + + + lambadalambda + Constance Variable + Call me Deacon Blues. + + Berlin + + + homepage + https://heldscal.la + true + + + + + + + + + + + + + undo:tag:social.heldscal.la,2017-05-07:subscription:23211:person:44803:2017-05-07T09:54:48+00:00 + Constance Variable (lambadalambda@social.heldscal.la)'s status on Sunday, 07-May-2017 09:54:49 UTC + <a href="https://social.heldscal.la/lambadalambda">Constance Variable</a> stopped following <a href="https://pawoo.net/@pekorino">mono</a>. + + http://activitystrea.ms/schema/1.0/unfollow + 2017-05-07T09:54:49+00:00 + 2017-05-07T09:54:49+00:00 + + http://activitystrea.ms/schema/1.0/person + https://pawoo.net/users/pekorino + mono + http://shitposter.club/mono 孤独のグルメ + + + + + pekorino + mono + http://shitposter.club/mono 孤独のグルメ + + + tag:social.heldscal.la,2017-05-07:objectType=thread:nonce=6e80caf94e03029f + + + + + + diff --git a/test/web/ostatus/ostatus_test.exs b/test/web/ostatus/ostatus_test.exs index 3e7cf0155..f095e41dd 100644 --- a/test/web/ostatus/ostatus_test.exs +++ b/test/web/ostatus/ostatus_test.exs @@ -278,6 +278,30 @@ test "handle incoming follows" do assert User.following?(follower, followed) end + test "handle incoming unfollows with existing follow" do + incoming_follow = File.read!("test/fixtures/follow.xml") + {:ok, [_activity]} = OStatus.handle_incoming(incoming_follow) + + incoming = File.read!("test/fixtures/unfollow.xml") + {:ok, [activity]} = OStatus.handle_incoming(incoming) + + assert activity.data["type"] == "Undo" + + assert activity.data["id"] == + "undo:tag:social.heldscal.la,2017-05-07:subscription:23211:person:44803:2017-05-07T09:54:48+00:00" + + assert activity.data["actor"] == "https://social.heldscal.la/user/23211" + assert is_map(activity.data["object"]) + assert activity.data["object"]["type"] == "Follow" + assert activity.data["object"]["object"] == "https://pawoo.net/users/pekorino" + refute activity.local + + follower = User.get_by_ap_id(activity.data["actor"]) + followed = User.get_by_ap_id(activity.data["object"]["object"]) + + refute User.following?(follower, followed) + end + describe "new remote user creation" do test "returns local users" do local_user = insert(:user) From 46427cb90f31d72435b10134a85fad674e10f1cd Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Mon, 21 May 2018 11:57:15 -0400 Subject: [PATCH 19/52] Pass correct number of arguments to unfollow --- lib/pleroma/web/activity_pub/activity_pub.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index c2d540db9..8485a8009 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -224,7 +224,7 @@ def block(blocker, blocked, activity_id \\ nil, local \\ true) do follow_activity = fetch_latest_follow(blocker, blocked) if follow_activity do - unfollow(blocker, blocked, local) + unfollow(blocker, blocked, nil, local) end with block_data <- make_block_data(blocker, blocked, activity_id), From d0690622cdb885005444848a7db34bf89151e803 Mon Sep 17 00:00:00 2001 From: Syldexia Date: Mon, 21 May 2018 22:17:34 +0100 Subject: [PATCH 20/52] Added endpoint for changing passwords --- lib/pleroma/web/common_api/utils.ex | 4 +- lib/pleroma/web/router.ex | 1 + .../controllers/util_controller.ex | 25 +++++- .../twitter_api_controller_test.exs | 77 +++++++++++++++++++ 4 files changed, 104 insertions(+), 3 deletions(-) diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex index e774743a2..4ac45b592 100644 --- a/lib/pleroma/web/common_api/utils.ex +++ b/lib/pleroma/web/common_api/utils.ex @@ -187,9 +187,9 @@ defp shortname(name) do end end - def confirm_current_password(user, params) do + def confirm_current_password(user, password) do with %User{local: true} = db_user <- Repo.get(User, user.id), - true <- Pbkdf2.checkpw(params["password"], db_user.password_hash) do + true <- Pbkdf2.checkpw(password, db_user.password_hash) do {:ok, db_user} else _ -> {:error, "Invalid password."} diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 2b5209b75..9389244b1 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -73,6 +73,7 @@ def user_fetcher(username) do scope "/api/pleroma", Pleroma.Web.TwitterAPI do pipe_through(:authenticated_api) post("/follow_import", UtilController, :follow_import) + post("/change_password", UtilController, :change_password) post("/delete_account", UtilController, :delete_account) end diff --git a/lib/pleroma/web/twitter_api/controllers/util_controller.ex b/lib/pleroma/web/twitter_api/controllers/util_controller.ex index 23e7408a0..cc5146566 100644 --- a/lib/pleroma/web/twitter_api/controllers/util_controller.ex +++ b/lib/pleroma/web/twitter_api/controllers/util_controller.ex @@ -197,8 +197,31 @@ def follow_import(%{assigns: %{user: user}} = conn, %{"list" => list}) do json(conn, "job started") end + def change_password(%{assigns: %{user: user}} = conn, params) do + case CommonAPI.Utils.confirm_current_password(user, params["password"]) do + {:ok, user} -> + with {:ok, _user} <- + User.reset_password(user, %{ + password: params["new_password"], + password_confirmation: params["new_password_confirmation"] + }) do + json(conn, %{status: "success"}) + else + {:error, changeset} -> + {_, {error, _}} = Enum.at(changeset.errors, 0) + json(conn, %{error: "New password #{error}."}) + + _ -> + json(conn, %{error: "Unable to change password."}) + end + + {:error, msg} -> + json(conn, %{error: msg}) + end + end + def delete_account(%{assigns: %{user: user}} = conn, params) do - case CommonAPI.Utils.confirm_current_password(user, params) do + case CommonAPI.Utils.confirm_current_password(user, params["password"]) do {:ok, user} -> Task.start(fn -> User.delete(user) end) json(conn, %{status: "success"}) diff --git a/test/web/twitter_api/twitter_api_controller_test.exs b/test/web/twitter_api/twitter_api_controller_test.exs index 02aba0bc8..73443e053 100644 --- a/test/web/twitter_api/twitter_api_controller_test.exs +++ b/test/web/twitter_api/twitter_api_controller_test.exs @@ -8,6 +8,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do alias Pleroma.Web.TwitterAPI.NotificationView alias Pleroma.Web.CommonAPI alias Pleroma.Web.TwitterAPI.TwitterAPI + alias Comeonin.Pbkdf2 import Pleroma.Factory @@ -801,6 +802,82 @@ test "Convert newlines to
in bio", %{conn: conn} do assert user.bio == "Hello,
World! I
am a test." end + describe "POST /api/pleroma/change_password" do + setup [:valid_user] + + test "without credentials", %{conn: conn} do + conn = post(conn, "/api/pleroma/change_password") + assert json_response(conn, 403) == %{"error" => "Invalid credentials."} + end + + test "with credentials and invalid password", %{conn: conn, user: current_user} do + conn = + conn + |> with_credentials(current_user.nickname, "test") + |> post("/api/pleroma/change_password", %{ + "password" => "hi", + "new_password" => "newpass", + "new_password_confirmation" => "newpass" + }) + + assert json_response(conn, 200) == %{"error" => "Invalid password."} + end + + test "with credentials, valid password and new password and confirmation not matching", %{ + conn: conn, + user: current_user + } do + conn = + conn + |> with_credentials(current_user.nickname, "test") + |> post("/api/pleroma/change_password", %{ + "password" => "test", + "new_password" => "newpass", + "new_password_confirmation" => "notnewpass" + }) + + assert json_response(conn, 200) == %{ + "error" => "New password does not match confirmation." + } + end + + test "with credentials, valid password and invalid new password", %{ + conn: conn, + user: current_user + } do + conn = + conn + |> with_credentials(current_user.nickname, "test") + |> post("/api/pleroma/change_password", %{ + "password" => "test", + "new_password" => "", + "new_password_confirmation" => "" + }) + + assert json_response(conn, 200) == %{ + "error" => "New password can't be blank." + } + end + + test "with credentials, valid password and matching new password and confirmation", %{ + conn: conn, + user: current_user + } do + conn = + conn + |> with_credentials(current_user.nickname, "test") + |> post("/api/pleroma/change_password", %{ + "password" => "test", + "new_password" => "newpass", + "new_password_confirmation" => "newpass" + }) + + assert json_response(conn, 200) == %{"status" => "success"} + fetched_user = Repo.get(User, current_user.id) + assert Pbkdf2.checkpw("newpass", fetched_user.password_hash) == true + end + end + describe "POST /api/pleroma/delete_account" do setup [:valid_user] From 69aa7c213a8aa1dfa54dbcfdab0c4b10ec415df8 Mon Sep 17 00:00:00 2001 From: Syldexia Date: Mon, 21 May 2018 22:32:28 +0100 Subject: [PATCH 21/52] Fixed test --- test/web/common_api/common_api_utils_test.exs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/web/common_api/common_api_utils_test.exs b/test/web/common_api/common_api_utils_test.exs index 23cce471f..f39472ee3 100644 --- a/test/web/common_api/common_api_utils_test.exs +++ b/test/web/common_api/common_api_utils_test.exs @@ -21,13 +21,12 @@ test "it adds attachment links to a given text and attachment set" do test "incorrect password given" do {:ok, user} = UserBuilder.insert() - assert Utils.confirm_current_password(user, %{"password" => ""}) == - {:error, "Invalid password."} + assert Utils.confirm_current_password(user, "") == {:error, "Invalid password."} end test "correct password given" do {:ok, user} = UserBuilder.insert() - assert Utils.confirm_current_password(user, %{"password" => "test"}) == {:ok, user} + assert Utils.confirm_current_password(user, "test") == {:ok, user} end end end From b2c6ae7d820fb9d6bf81c6912e3e9b10a6fa7dd2 Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Tue, 22 May 2018 04:27:40 -0400 Subject: [PATCH 22/52] Hook up unfollow and (un)block to MastoAPI + tests --- .../mastodon_api/mastodon_api_controller.ex | 17 ++++------ test/web/activity_pub/activity_pub_test.exs | 33 +++++++++++++++++++ 2 files changed, 39 insertions(+), 11 deletions(-) diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index 85f9c5b7b..b21f5de20 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -457,24 +457,18 @@ def follow(%{assigns: %{user: follower}} = conn, %{"uri" => uri}) do end end - # TODO: Clean up and unify def unfollow(%{assigns: %{user: follower}} = conn, %{"id" => id}) do with %User{} = followed <- Repo.get(User, id), - {:ok, follower, follow_activity} <- User.unfollow(follower, followed), - {:ok, _activity} <- - ActivityPub.insert(%{ - "type" => "Undo", - "actor" => follower.ap_id, - # get latest Follow for these users - "object" => follow_activity.data["id"] - }) do + {:ok, _activity} <- ActivityPub.unfollow(follower, followed), + {:ok, follower, _} <- User.unfollow(follower, followed) do render(conn, AccountView, "relationship.json", %{user: follower, target: followed}) end end def block(%{assigns: %{user: blocker}} = conn, %{"id" => id}) do with %User{} = blocked <- Repo.get(User, id), - {:ok, blocker} <- User.block(blocker, blocked) do + {:ok, blocker} <- User.block(blocker, blocked), + {:ok, _activity} <- ActivityPub.block(blocker, blocked) do render(conn, AccountView, "relationship.json", %{user: blocker, target: blocked}) else {:error, message} -> @@ -486,7 +480,8 @@ def block(%{assigns: %{user: blocker}} = conn, %{"id" => id}) do def unblock(%{assigns: %{user: blocker}} = conn, %{"id" => id}) do with %User{} = blocked <- Repo.get(User, id), - {:ok, blocker} <- User.unblock(blocker, blocked) do + {:ok, blocker} <- User.unblock(blocker, blocked), + {:ok, _activity} <- ActivityPub.unblock(blocker, blocked) do render(conn, AccountView, "relationship.json", %{user: blocker, target: blocked}) else {:error, message} -> diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs index 35f0deffe..081c202b1 100644 --- a/test/web/activity_pub/activity_pub_test.exs +++ b/test/web/activity_pub/activity_pub_test.exs @@ -425,10 +425,43 @@ test "creates an undo activity for the last follow" do assert activity.data["type"] == "Undo" assert activity.data["actor"] == follower.ap_id + + assert is_map(activity.data["object"]) + assert activity.data["object"]["type"] == "Follow" + assert activity.data["object"]["object"] == followed.ap_id assert activity.data["object"]["id"] == follow_activity.data["id"] end end + describe "blocking / unblocking" do + test "creates a block activity" do + blocker = insert(:user) + blocked = insert(:user) + + {:ok, activity} = ActivityPub.block(blocker, blocked) + + assert activity.data["type"] == "Block" + assert activity.data["actor"] == blocker.ap_id + assert activity.data["object"] == blocked.ap_id + end + + test "creates an undo activity for the last block" do + blocker = insert(:user) + blocked = insert(:user) + + {:ok, block_activity} = ActivityPub.block(blocker, blocked) + {:ok, activity} = ActivityPub.unblock(blocker, blocked) + + assert activity.data["type"] == "Undo" + assert activity.data["actor"] == blocker.ap_id + + assert is_map(activity.data["object"]) + assert activity.data["object"]["type"] == "Block" + assert activity.data["object"]["object"] == blocked.ap_id + assert activity.data["object"]["id"] == block_activity.data["id"] + end + end + describe "deletion" do test "it creates a delete activity and deletes the original object" do note = insert(:note_activity) From 55f9aefd08dd922013fcd55c02552ddbb89bcda3 Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Tue, 22 May 2018 04:49:30 -0400 Subject: [PATCH 23/52] Hook unfollow into TwitterAPI --- lib/pleroma/web/twitter_api/twitter_api.ex | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex index 722e436e2..5eeebe161 100644 --- a/lib/pleroma/web/twitter_api/twitter_api.ex +++ b/lib/pleroma/web/twitter_api/twitter_api.ex @@ -36,14 +36,7 @@ def follow(%User{} = follower, params) do def unfollow(%User{} = follower, params) do with {:ok, %User{} = unfollowed} <- get_user(params), {:ok, follower, follow_activity} <- User.unfollow(follower, unfollowed), - {:ok, _activity} <- - ActivityPub.insert(%{ - "type" => "Undo", - "actor" => follower.ap_id, - # get latest Follow for these users - "object" => follow_activity.data["id"], - "published" => make_date() - }) do + {:ok, _activity} <- ActivityPub.unfollow(follower, unfollowed) do {:ok, follower, unfollowed} else err -> err From 72b93d13f8208f22f9a771dc8ba18c474fc81849 Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Tue, 22 May 2018 05:41:17 -0400 Subject: [PATCH 24/52] Hook up block/unblock to TwitterAPI --- lib/pleroma/web/twitter_api/twitter_api.ex | 6 ++++-- test/web/twitter_api/twitter_api_controller_test.exs | 2 +- test/web/twitter_api/twitter_api_test.exs | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex index 5eeebe161..3ccdaed6f 100644 --- a/lib/pleroma/web/twitter_api/twitter_api.ex +++ b/lib/pleroma/web/twitter_api/twitter_api.ex @@ -45,7 +45,8 @@ def unfollow(%User{} = follower, params) do def block(%User{} = blocker, params) do with {:ok, %User{} = blocked} <- get_user(params), - {:ok, blocker} <- User.block(blocker, blocked) do + {:ok, blocker} <- User.block(blocker, blocked), + {:ok, _activity} <- ActivityPub.block(blocker, blocked) do {:ok, blocker, blocked} else err -> err @@ -54,7 +55,8 @@ def block(%User{} = blocker, params) do def unblock(%User{} = blocker, params) do with {:ok, %User{} = blocked} <- get_user(params), - {:ok, blocker} <- User.unblock(blocker, blocked) do + {:ok, blocker} <- User.unblock(blocker, blocked), + {:ok, _activity} <- ActivityPub.unblock(blocker, blocked) do {:ok, blocker, blocked} else err -> err diff --git a/test/web/twitter_api/twitter_api_controller_test.exs b/test/web/twitter_api/twitter_api_controller_test.exs index 02aba0bc8..625303b84 100644 --- a/test/web/twitter_api/twitter_api_controller_test.exs +++ b/test/web/twitter_api/twitter_api_controller_test.exs @@ -443,7 +443,7 @@ test "without valid credentials", %{conn: conn} do test "with credentials", %{conn: conn, user: current_user} do blocked = insert(:user) - {:ok, current_user} = User.block(current_user, blocked) + {:ok, current_user, blocked} = TwitterAPI.block(current_user, %{"user_id" => blocked.id}) assert User.blocks?(current_user, blocked) conn = diff --git a/test/web/twitter_api/twitter_api_test.exs b/test/web/twitter_api/twitter_api_test.exs index af565c0e5..4716abb84 100644 --- a/test/web/twitter_api/twitter_api_test.exs +++ b/test/web/twitter_api/twitter_api_test.exs @@ -166,7 +166,7 @@ test "Block another user using screen_name" do test "Unblock another user using user_id" do unblocked = insert(:user) user = insert(:user) - User.block(user, unblocked) + {:ok, user, _unblocked} = TwitterAPI.block(user, %{"user_id" => unblocked.id}) {:ok, user, _unblocked} = TwitterAPI.unblock(user, %{"user_id" => unblocked.id}) assert user.info["blocks"] == [] @@ -175,7 +175,7 @@ test "Unblock another user using user_id" do test "Unblock another user using screen_name" do unblocked = insert(:user) user = insert(:user) - User.block(user, unblocked) + {:ok, user, _unblocked} = TwitterAPI.block(user, %{"screen_name" => unblocked.nickname}) {:ok, user, _unblocked} = TwitterAPI.unblock(user, %{"screen_name" => unblocked.nickname}) assert user.info["blocks"] == [] From d81a4e92809d6dc7d3d3fb4ce85e5f94c1e23f0a Mon Sep 17 00:00:00 2001 From: Niklas Poslovski Date: Tue, 22 May 2018 15:39:29 +0200 Subject: [PATCH 25/52] Add access-control-expose-headers to Nginx default config --- installation/pleroma.nginx | 1 + 1 file changed, 1 insertion(+) diff --git a/installation/pleroma.nginx b/installation/pleroma.nginx index 44905da49..b8abdce22 100644 --- a/installation/pleroma.nginx +++ b/installation/pleroma.nginx @@ -54,6 +54,7 @@ server { add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Methods' 'POST, GET, OPTIONS' always; add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type' always; + add_header 'Access-Control-Expose-Headers' 'Link, X-RateLimit-Reset, X-RateLimit-Limit, X-RateLimit-Remaining, X-Request-Id' always; if ($request_method = OPTIONS) { return 204; } From f0e8194a7129b6885ad74a694157e10e29f20807 Mon Sep 17 00:00:00 2001 From: Niklas Poslovski Date: Tue, 22 May 2018 16:26:01 +0200 Subject: [PATCH 26/52] Repair some access-control headers required for third-party webclients --- installation/pleroma.nginx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/installation/pleroma.nginx b/installation/pleroma.nginx index b8abdce22..b6ca30cc9 100644 --- a/installation/pleroma.nginx +++ b/installation/pleroma.nginx @@ -52,8 +52,8 @@ server { # if you do not want remote frontends to be able to access your Pleroma backend # server, remove these lines. add_header 'Access-Control-Allow-Origin' '*' always; - add_header 'Access-Control-Allow-Methods' 'POST, GET, OPTIONS' always; - add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type' always; + add_header 'Access-Control-Allow-Methods' 'POST, PUT, DELETE, GET, PATCH, OPTIONS' always; + add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, Idempotency-Key' always; add_header 'Access-Control-Expose-Headers' 'Link, X-RateLimit-Reset, X-RateLimit-Limit, X-RateLimit-Remaining, X-Request-Id' always; if ($request_method = OPTIONS) { return 204; From 0b5bc62b33a655488afe73b35945adcbab11300d Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 23 May 2018 17:25:24 +0200 Subject: [PATCH 27/52] Don't save double tags in AP objects we create This crashed Mastodon workers. --- lib/pleroma/web/common_api/utils.ex | 2 +- test/web/common_api/common_api_test.exs | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 test/web/common_api/common_api_test.exs diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex index e774743a2..71412eea8 100644 --- a/lib/pleroma/web/common_api/utils.ex +++ b/lib/pleroma/web/common_api/utils.ex @@ -133,7 +133,7 @@ def make_note_data( "context" => context, "attachment" => attachments, "actor" => actor, - "tag" => tags |> Enum.map(fn {_, tag} -> tag end) + "tag" => tags |> Enum.map(fn {_, tag} -> tag end) |> Enum.uniq() } if inReplyTo do diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs new file mode 100644 index 000000000..b597e6e0a --- /dev/null +++ b/test/web/common_api/common_api_test.exs @@ -0,0 +1,13 @@ +defmodule Pleroma.Web.CommonAPI.UtilsTest do + use Pleroma.DataCase + alias Pleroma.Web.CommonAPI + + import Pleroma.Factory + + test "it de-duplicates tags" do + user = insert(:user) + {:ok, activity} = CommonAPI.post(user, %{"status" => "#2hu #2HU"}) + + assert activity.data["object"]["tag"] == ["2hu"] + end +end From a8369db4f222676040a072ceb0bde647ef237f14 Mon Sep 17 00:00:00 2001 From: eal Date: Sun, 29 Apr 2018 16:02:46 +0300 Subject: [PATCH 28/52] MastoAPI: add lists. --- lib/pleroma/list.ex | 86 ++++++++++++++++ .../mastodon_api/mastodon_api_controller.ex | 98 ++++++++++++++++++- .../web/mastodon_api/views/list_view.ex | 15 +++ lib/pleroma/web/router.ex | 11 ++- .../20180429094642_create_lists.exs | 15 +++ 5 files changed, 223 insertions(+), 2 deletions(-) create mode 100644 lib/pleroma/list.ex create mode 100644 lib/pleroma/web/mastodon_api/views/list_view.ex create mode 100644 priv/repo/migrations/20180429094642_create_lists.exs diff --git a/lib/pleroma/list.ex b/lib/pleroma/list.ex new file mode 100644 index 000000000..657d42626 --- /dev/null +++ b/lib/pleroma/list.ex @@ -0,0 +1,86 @@ +defmodule Pleroma.List do + use Ecto.Schema + import Ecto.{Changeset, Query} + alias Pleroma.{User, Repo} + + schema "lists" do + belongs_to(:user, Pleroma.User) + field(:title, :string) + field(:following, {:array, :string}, default: []) + + timestamps() + end + + def title_changeset(list, attrs \\ %{}) do + list + |> cast(attrs, [:title]) + |> validate_required([:title]) + end + + def follow_changeset(list, attrs \\ %{}) do + list + |> cast(attrs, [:following]) + |> validate_required([:following]) + end + + def for_user(user, opts) do + query = + from( + l in Pleroma.List, + where: l.user_id == ^user.id, + order_by: [desc: l.id], + limit: 50 + ) + + Repo.all(query) + end + + def get(%{id: user_id} = _user, id) do + query = + from( + l in Pleroma.List, + where: l.id == ^id, + where: l.user_id == ^user_id + ) + + Repo.one(query) + end + + def get_following(%Pleroma.List{following: following} = list) do + q = from( + u in User, + where: u.follower_address in ^following + ) + {:ok, Repo.all(q)} + end + + def rename(%Pleroma.List{} = list, title) do + list + |> title_changeset(%{title: title}) + |> Repo.update() + end + + def create(title, %User{} = creator) do + list = %Pleroma.List{user_id: creator.id, title: title} + Repo.insert(list) + end + + # TODO check that user is following followed + def follow(%Pleroma.List{following: following} = list, %User{} = followed) do + update_follows(list, %{following: Enum.uniq([followed.follower_address | following])}) + end + + def unfollow(%Pleroma.List{following: following} = list, %User{} = unfollowed) do + update_follows(list, %{following: List.delete(following, unfollowed.follower_address)}) + end + + def delete(%Pleroma.List{} = list) do + Repo.delete(list) + end + + def update_follows(%Pleroma.List{} = list, attrs) do + list + |> follow_changeset(attrs) + |> Repo.update() + end +end diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index c84c226e8..ff52b2aab 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -2,7 +2,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do use Pleroma.Web, :controller alias Pleroma.{Repo, Activity, User, Notification, Stats} alias Pleroma.Web - alias Pleroma.Web.MastodonAPI.{StatusView, AccountView, MastodonView} + alias Pleroma.Web.MastodonAPI.{StatusView, AccountView, MastodonView, ListView} alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.{CommonAPI, OStatus} alias Pleroma.Web.OAuth.{Authorization, Token, App} @@ -565,6 +565,102 @@ def favourites(%{assigns: %{user: user}} = conn, _) do |> render(StatusView, "index.json", %{activities: activities, for: user, as: :activity}) end + def get_lists(%{assigns: %{user: user}} = conn, opts) do + lists = Pleroma.List.for_user(user, opts) + res = ListView.render("lists.json", lists: lists) + json(conn, res) + end + + def get_list(%{assigns: %{user: user}} = conn, %{"id" => id}) do + with %Pleroma.List{} = list <- Pleroma.List.get(user, id) do + res = ListView.render("list.json", list: list) + json(conn, res) + else + _e -> json(conn, "error") + end + end + + def delete_list(%{assigns: %{user: user}} = conn, %{"id" => id}) do + with %Pleroma.List{} = list <- Pleroma.List.get(user, id), + {:ok, _list} <- Pleroma.List.delete(list) do + json(conn, %{}) + else + _e -> + json(conn, "error") + end + end + + def create_list(%{assigns: %{user: user}} = conn, %{"title" => title}) do + with {:ok, %Pleroma.List{} = list} <- Pleroma.List.create(title, user) do + res = ListView.render("list.json", list: list) + json(conn, res) + end + end + + def add_to_list(%{assigns: %{user: user}} = conn, %{"id" => id, "account_ids" => accounts}) do + accounts + |> Enum.each(fn account_id -> + with %Pleroma.List{} = list <- Pleroma.List.get(user, id), + %User{} = followed <- Repo.get(User, account_id) do + ret = Pleroma.List.follow(list, followed) + end + end) + + json(conn, %{}) + end + + def remove_from_list(%{assigns: %{user: user}} = conn, %{"id" => id, "account_ids" => accounts}) do + accounts + |> Enum.each(fn account_id -> + with %Pleroma.List{} = list <- Pleroma.List.get(user, id), + %User{} = followed <- Repo.get(Pleroma.User, account_id) do + Pleroma.List.unfollow(list, followed) + end + end) + + json(conn, %{}) + end + + def list_accounts(%{assigns: %{user: user}} = conn, %{"id" => id}) do + with %Pleroma.List{} = list <- Pleroma.List.get(user, id), + {:ok, users} = Pleroma.List.get_following(list) do + render(conn, AccountView, "accounts.json", %{users: users, as: :user}) + end + end + + def rename_list(%{assigns: %{user: user}} = conn, %{"id" => id, "title" => title}) do + with %Pleroma.List{} = list <- Pleroma.List.get(user, id), + {:ok, list} <- Pleroma.List.rename(list, title) do + res = ListView.render("list.json", list: list) + json(conn, res) + else + _e -> + json(conn, "error") + end + end + + def list_timeline(%{assigns: %{user: user}} = conn, %{"list_id" => id} = params) do + with %Pleroma.List{title: title, following: following} <- Pleroma.List.get(user, id) do + params = + params + |> Map.put("type", "Create") + |> Map.put("blocking_user", user) + + # adding title is a hack to not make empty lists function like a public timeline + activities = + ActivityPub.fetch_activities([title | following], params) + |> Enum.reverse() + + conn + |> render(StatusView, "index.json", %{activities: activities, for: user, as: :activity}) + else + _e -> + conn + |> put_status(403) + |> json(%{error: "Error."}) + end + end + def index(%{assigns: %{user: user}} = conn, _params) do token = conn diff --git a/lib/pleroma/web/mastodon_api/views/list_view.ex b/lib/pleroma/web/mastodon_api/views/list_view.ex new file mode 100644 index 000000000..1a1b7430b --- /dev/null +++ b/lib/pleroma/web/mastodon_api/views/list_view.ex @@ -0,0 +1,15 @@ +defmodule Pleroma.Web.MastodonAPI.ListView do + use Pleroma.Web, :view + alias Pleroma.Web.MastodonAPI.ListView + + def render("lists.json", %{lists: lists} = opts) do + render_many(lists, ListView, "list.json", opts) + end + + def render("list.json", %{list: list}) do + %{ + id: to_string(list.id), + title: list.title + } + end +end diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index cecf5527c..c58f77817 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -102,7 +102,6 @@ def user_fetcher(username) do get("/domain_blocks", MastodonAPIController, :empty_array) get("/follow_requests", MastodonAPIController, :empty_array) get("/mutes", MastodonAPIController, :empty_array) - get("/lists", MastodonAPIController, :empty_array) get("/timelines/home", MastodonAPIController, :home_timeline) @@ -121,6 +120,15 @@ def user_fetcher(username) do get("/notifications/:id", MastodonAPIController, :get_notification) post("/media", MastodonAPIController, :upload) + + get("/lists", MastodonAPIController, :get_lists) + get("/lists/:id", MastodonAPIController, :get_list) + delete("/lists/:id", MastodonAPIController, :delete_list) + post("/lists", MastodonAPIController, :create_list) + put("/lists/:id", MastodonAPIController, :rename_list) + get("/lists/:id/accounts", MastodonAPIController, :list_accounts) + post("/lists/:id/accounts", MastodonAPIController, :add_to_list) + delete("/lists/:id/accounts", MastodonAPIController, :remove_from_list) end scope "/api/web", Pleroma.Web.MastodonAPI do @@ -138,6 +146,7 @@ def user_fetcher(username) do get("/timelines/public", MastodonAPIController, :public_timeline) get("/timelines/tag/:tag", MastodonAPIController, :hashtag_timeline) + get("/timelines/list/:list_id", MastodonAPIController, :list_timeline) get("/statuses/:id", MastodonAPIController, :get_status) get("/statuses/:id/context", MastodonAPIController, :get_context) diff --git a/priv/repo/migrations/20180429094642_create_lists.exs b/priv/repo/migrations/20180429094642_create_lists.exs new file mode 100644 index 000000000..64c62250e --- /dev/null +++ b/priv/repo/migrations/20180429094642_create_lists.exs @@ -0,0 +1,15 @@ +defmodule Pleroma.Repo.Migrations.CreateLists do + use Ecto.Migration + + def change do + create table(:lists) do + add :user_id, references(:users, on_delete: :delete_all) + add :title, :string + add :following, {:array, :string} + + timestamps() + end + + create index(:lists, [:user_id]) + end +end From 1cd6194deeca32a96a31fc43c0ed27daadd65f64 Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 24 May 2018 12:44:26 +0200 Subject: [PATCH 29/52] More efficient queries. --- lib/pleroma/web/activity_pub/utils.ex | 5 +++-- test/support/factory.ex | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index 937f032c3..a3feca480 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -242,8 +242,9 @@ def fetch_latest_follow(%User{ap_id: follower_id}, %User{ap_id: followed_id}) do fragment( "? @> ?", activity.data, - ^%{type: "Follow", actor: follower_id, object: followed_id} + ^%{type: "Follow", object: followed_id} ), + where: activity.actor == ^follower_id, order_by: [desc: :id], limit: 1 ) @@ -260,7 +261,7 @@ def get_existing_announce(actor, %{data: %{"id" => id}}) do query = from( activity in Activity, - where: fragment("(?)->>'actor' = ?", activity.data, ^actor), + where: activity.actor == ^actor, # this is to use the index where: fragment( diff --git a/test/support/factory.ex b/test/support/factory.ex index 8e21e2562..b2e98c8d1 100644 --- a/test/support/factory.ex +++ b/test/support/factory.ex @@ -95,7 +95,8 @@ def follow_activity_factory do } %Pleroma.Activity{ - data: data + data: data, + actor: follower.ap_id } end From 3dbd9809d44297c2edc8e08bde33f9ef7b998412 Mon Sep 17 00:00:00 2001 From: eal Date: Sun, 29 Apr 2018 16:02:46 +0300 Subject: [PATCH 30/52] MastoAPI: add lists. --- lib/pleroma/list.ex | 13 +- .../mastodon_api/mastodon_api_controller.ex | 16 +-- test/list_test.exs | 77 ++++++++++++ test/web/mastodon_api/list_view_test.exs | 19 +++ .../mastodon_api_controller_test.exs | 119 ++++++++++++++++++ 5 files changed, 230 insertions(+), 14 deletions(-) create mode 100644 test/list_test.exs create mode 100644 test/web/mastodon_api/list_view_test.exs diff --git a/lib/pleroma/list.ex b/lib/pleroma/list.ex index 657d42626..9d0b9285b 100644 --- a/lib/pleroma/list.ex +++ b/lib/pleroma/list.ex @@ -35,7 +35,7 @@ def for_user(user, opts) do Repo.all(query) end - def get(%{id: user_id} = _user, id) do + def get(id, %{id: user_id} = _user) do query = from( l in Pleroma.List, @@ -47,10 +47,12 @@ def get(%{id: user_id} = _user, id) do end def get_following(%Pleroma.List{following: following} = list) do - q = from( - u in User, - where: u.follower_address in ^following - ) + q = + from( + u in User, + where: u.follower_address in ^following + ) + {:ok, Repo.all(q)} end @@ -65,7 +67,6 @@ def create(title, %User{} = creator) do Repo.insert(list) end - # TODO check that user is following followed def follow(%Pleroma.List{following: following} = list, %User{} = followed) do update_follows(list, %{following: Enum.uniq([followed.follower_address | following])}) end diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index ff52b2aab..82ddb9a5d 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -572,7 +572,7 @@ def get_lists(%{assigns: %{user: user}} = conn, opts) do end def get_list(%{assigns: %{user: user}} = conn, %{"id" => id}) do - with %Pleroma.List{} = list <- Pleroma.List.get(user, id) do + with %Pleroma.List{} = list <- Pleroma.List.get(id, user) do res = ListView.render("list.json", list: list) json(conn, res) else @@ -581,7 +581,7 @@ def get_list(%{assigns: %{user: user}} = conn, %{"id" => id}) do end def delete_list(%{assigns: %{user: user}} = conn, %{"id" => id}) do - with %Pleroma.List{} = list <- Pleroma.List.get(user, id), + with %Pleroma.List{} = list <- Pleroma.List.get(id, user), {:ok, _list} <- Pleroma.List.delete(list) do json(conn, %{}) else @@ -600,9 +600,9 @@ def create_list(%{assigns: %{user: user}} = conn, %{"title" => title}) do def add_to_list(%{assigns: %{user: user}} = conn, %{"id" => id, "account_ids" => accounts}) do accounts |> Enum.each(fn account_id -> - with %Pleroma.List{} = list <- Pleroma.List.get(user, id), + with %Pleroma.List{} = list <- Pleroma.List.get(id, user), %User{} = followed <- Repo.get(User, account_id) do - ret = Pleroma.List.follow(list, followed) + Pleroma.List.follow(list, followed) end end) @@ -612,7 +612,7 @@ def add_to_list(%{assigns: %{user: user}} = conn, %{"id" => id, "account_ids" => def remove_from_list(%{assigns: %{user: user}} = conn, %{"id" => id, "account_ids" => accounts}) do accounts |> Enum.each(fn account_id -> - with %Pleroma.List{} = list <- Pleroma.List.get(user, id), + with %Pleroma.List{} = list <- Pleroma.List.get(id, user), %User{} = followed <- Repo.get(Pleroma.User, account_id) do Pleroma.List.unfollow(list, followed) end @@ -622,14 +622,14 @@ def remove_from_list(%{assigns: %{user: user}} = conn, %{"id" => id, "account_id end def list_accounts(%{assigns: %{user: user}} = conn, %{"id" => id}) do - with %Pleroma.List{} = list <- Pleroma.List.get(user, id), + with %Pleroma.List{} = list <- Pleroma.List.get(id, user), {:ok, users} = Pleroma.List.get_following(list) do render(conn, AccountView, "accounts.json", %{users: users, as: :user}) end end def rename_list(%{assigns: %{user: user}} = conn, %{"id" => id, "title" => title}) do - with %Pleroma.List{} = list <- Pleroma.List.get(user, id), + with %Pleroma.List{} = list <- Pleroma.List.get(id, user), {:ok, list} <- Pleroma.List.rename(list, title) do res = ListView.render("list.json", list: list) json(conn, res) @@ -640,7 +640,7 @@ def rename_list(%{assigns: %{user: user}} = conn, %{"id" => id, "title" => title end def list_timeline(%{assigns: %{user: user}} = conn, %{"list_id" => id} = params) do - with %Pleroma.List{title: title, following: following} <- Pleroma.List.get(user, id) do + with %Pleroma.List{title: title, following: following} <- Pleroma.List.get(id, user) do params = params |> Map.put("type", "Create") diff --git a/test/list_test.exs b/test/list_test.exs new file mode 100644 index 000000000..ced012093 --- /dev/null +++ b/test/list_test.exs @@ -0,0 +1,77 @@ +defmodule Pleroma.ListTest do + alias Pleroma.{User, Repo} + use Pleroma.DataCase + + import Pleroma.Factory + import Ecto.Query + + test "creating a list" do + user = insert(:user) + {:ok, %Pleroma.List{} = list} = Pleroma.List.create("title", user) + %Pleroma.List{title: title} = Pleroma.List.get(list.id, user) + assert title == "title" + end + + test "getting a list not belonging to the user" do + user = insert(:user) + other_user = insert(:user) + {:ok, %Pleroma.List{} = list} = Pleroma.List.create("title", user) + ret = Pleroma.List.get(list.id, other_user) + assert is_nil(ret) + end + + test "adding an user to a list" do + user = insert(:user) + other_user = insert(:user) + {:ok, list} = Pleroma.List.create("title", user) + {:ok, %{following: following}} = Pleroma.List.follow(list, other_user) + assert [other_user.follower_address] == following + end + + test "removing an user from a list" do + user = insert(:user) + other_user = insert(:user) + {:ok, list} = Pleroma.List.create("title", user) + {:ok, %{following: following}} = Pleroma.List.follow(list, other_user) + {:ok, %{following: following}} = Pleroma.List.unfollow(list, other_user) + assert [] == following + end + + test "renaming a list" do + user = insert(:user) + {:ok, list} = Pleroma.List.create("title", user) + {:ok, %{title: title}} = Pleroma.List.rename(list, "new") + assert "new" == title + end + + test "deleting a list" do + user = insert(:user) + {:ok, list} = Pleroma.List.create("title", user) + {:ok, list} = Pleroma.List.delete(list) + assert is_nil(Repo.get(Pleroma.List, list.id)) + end + + test "getting users in a list" do + user = insert(:user) + other_user = insert(:user) + third_user = insert(:user) + {:ok, list} = Pleroma.List.create("title", user) + {:ok, list} = Pleroma.List.follow(list, other_user) + {:ok, list} = Pleroma.List.follow(list, third_user) + {:ok, following} = Pleroma.List.get_following(list) + assert other_user in following + assert third_user in following + end + + test "getting all lists by an user" do + user = insert(:user) + other_user = insert(:user) + {:ok, list_one} = Pleroma.List.create("title", user) + {:ok, list_two} = Pleroma.List.create("other title", user) + {:ok, list_three} = Pleroma.List.create("third title", other_user) + lists = Pleroma.List.for_user(user, %{}) + assert list_one in lists + assert list_two in lists + refute list_three in lists + end +end diff --git a/test/web/mastodon_api/list_view_test.exs b/test/web/mastodon_api/list_view_test.exs new file mode 100644 index 000000000..5e36872ed --- /dev/null +++ b/test/web/mastodon_api/list_view_test.exs @@ -0,0 +1,19 @@ +defmodule Pleroma.Web.MastodonAPI.ListViewTest do + use Pleroma.DataCase + import Pleroma.Factory + alias Pleroma.Web.MastodonAPI.ListView + alias Pleroma.List + + test "Represent a list" do + user = insert(:user) + title = "mortal enemies" + {:ok, list} = Pleroma.List.create(title, user) + + expected = %{ + id: to_string(list.id), + title: title + } + + assert expected == ListView.render("list.json", %{list: list}) + end +end diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs index 5293b9364..55ebe07a8 100644 --- a/test/web/mastodon_api/mastodon_api_controller_test.exs +++ b/test/web/mastodon_api/mastodon_api_controller_test.exs @@ -161,6 +161,125 @@ test "when you didn't create it", %{conn: conn} do end end + describe "lists" do + test "creating a list", %{conn: conn} do + user = insert(:user) + + conn = + conn + |> assign(:user, user) + |> post("/api/v1/lists", %{"title" => "cuties"}) + + assert %{"title" => title} = json_response(conn, 200) + assert title == "cuties" + end + + test "adding users to a list", %{conn: conn} do + user = insert(:user) + other_user = insert(:user) + {:ok, list} = Pleroma.List.create("name", user) + + conn = + conn + |> assign(:user, user) + |> post("/api/v1/lists/#{list.id}/accounts", %{"account_ids" => [other_user.id]}) + + assert %{} == json_response(conn, 200) + %Pleroma.List{following: following} = Pleroma.List.get(list.id, user) + assert following == [other_user.follower_address] + end + + test "removing users from a list", %{conn: conn} do + user = insert(:user) + other_user = insert(:user) + third_user = insert(:user) + {:ok, list} = Pleroma.List.create("name", user) + {:ok, list} = Pleroma.List.follow(list, other_user) + {:ok, list} = Pleroma.List.follow(list, third_user) + + conn = + conn + |> assign(:user, user) + |> delete("/api/v1/lists/#{list.id}/accounts", %{"account_ids" => [other_user.id]}) + + assert %{} == json_response(conn, 200) + %Pleroma.List{following: following} = Pleroma.List.get(list.id, user) + assert following == [third_user.follower_address] + end + + test "listing users in a list", %{conn: conn} do + user = insert(:user) + other_user = insert(:user) + {:ok, list} = Pleroma.List.create("name", user) + {:ok, list} = Pleroma.List.follow(list, other_user) + + conn = + conn + |> assign(:user, user) + |> get("/api/v1/lists/#{list.id}/accounts", %{"account_ids" => [other_user.id]}) + + assert [%{"id" => id}] = json_response(conn, 200) + assert id == to_string(other_user.id) + end + + test "retrieving a list", %{conn: conn} do + user = insert(:user) + {:ok, list} = Pleroma.List.create("name", user) + + conn = + conn + |> assign(:user, user) + |> get("/api/v1/lists/#{list.id}") + + assert %{"id" => id} = json_response(conn, 200) + assert id == to_string(list.id) + end + + test "renaming a list", %{conn: conn} do + user = insert(:user) + {:ok, list} = Pleroma.List.create("name", user) + + conn = + conn + |> assign(:user, user) + |> put("/api/v1/lists/#{list.id}", %{"title" => "newname"}) + + assert %{"title" => name} = json_response(conn, 200) + assert name == "newname" + end + + test "deleting a list", %{conn: conn} do + user = insert(:user) + {:ok, list} = Pleroma.List.create("name", user) + + conn = + conn + |> assign(:user, user) + |> delete("/api/v1/lists/#{list.id}") + + assert %{} = json_response(conn, 200) + assert is_nil(Repo.get(Pleroma.List, list.id)) + end + + test "list timeline", %{conn: conn} do + user = insert(:user) + other_user = insert(:user) + {:ok, activity_one} = TwitterAPI.create_status(user, %{"status" => "Marisa is cute."}) + {:ok, activity_two} = TwitterAPI.create_status(other_user, %{"status" => "Marisa is cute."}) + {:ok, list} = Pleroma.List.create("name", user) + {:ok, list} = Pleroma.List.follow(list, other_user) + + conn = + conn + |> assign(:user, user) + |> get("/api/v1/timelines/list/#{list.id}") + + assert [%{"id" => id}] = json_response(conn, 200) + + assert id == to_string(activity_two.id) + end + end + describe "notifications" do test "list of notifications", %{conn: conn} do user = insert(:user) From 6b9a6838331210dd514d5ecda52783c183bd1bbf Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 24 May 2018 19:25:44 +0200 Subject: [PATCH 31/52] update frontend --- priv/static/index.html | 2 +- .../static/js/app.029b23b3921537271958.js | Bin 188423 -> 0 bytes .../static/js/app.029b23b3921537271958.js.map | Bin 862368 -> 0 bytes .../static/js/app.13c0bda10eb515cdf8ed.js | Bin 0 -> 191330 bytes .../static/js/app.13c0bda10eb515cdf8ed.js.map | Bin 0 -> 874505 bytes .../js/manifest.16ab7851cdbf730f9cbc.js | Bin 0 -> 877 bytes ...p => manifest.16ab7851cdbf730f9cbc.js.map} | Bin 9127 -> 9127 bytes .../js/manifest.f40706e221610d4c6256.js | Bin 877 -> 0 bytes 8 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 priv/static/static/js/app.029b23b3921537271958.js delete mode 100644 priv/static/static/js/app.029b23b3921537271958.js.map create mode 100644 priv/static/static/js/app.13c0bda10eb515cdf8ed.js create mode 100644 priv/static/static/js/app.13c0bda10eb515cdf8ed.js.map create mode 100644 priv/static/static/js/manifest.16ab7851cdbf730f9cbc.js rename priv/static/static/js/{manifest.f40706e221610d4c6256.js.map => manifest.16ab7851cdbf730f9cbc.js.map} (93%) delete mode 100644 priv/static/static/js/manifest.f40706e221610d4c6256.js diff --git a/priv/static/index.html b/priv/static/index.html index e6bc4344a..ae3cde3a4 100644 --- a/priv/static/index.html +++ b/priv/static/index.html @@ -1 +1 @@ -Pleroma
\ No newline at end of file +Pleroma
\ No newline at end of file diff --git a/priv/static/static/js/app.029b23b3921537271958.js b/priv/static/static/js/app.029b23b3921537271958.js deleted file mode 100644 index afaffa4c7d52e97d322e1cad9ac6bb690d675830..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188423 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⋙$x=dv=2?u$c%_osIjnD!%q@tg3qNJzYG70 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

^L1{z2^Lc+=?2;F)f~WYLmDetK>v2 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 literal 0 HcmV?d00001 diff --git a/priv/static/static/js/manifest.16ab7851cdbf730f9cbc.js b/priv/static/static/js/manifest.16ab7851cdbf730f9cbc.js new file mode 100644 index 0000000000000000000000000000000000000000..e0b409bb5318376ccb127040af7ced9bf6cc6ca7 GIT binary patch literal 877 zcmZuvO^?$s5WVv&QX^HdYTT64k8SV;#03G15S*eOCeEaBNo~t^w_8Q|?>OCd7YQ!b z{L zb;Xp(@}Zecluiu2FZU<|x6T9;&K7wC{{E!DJ7dv>^V6P&Svnr4SlF#F@u8OvFdoB2 zT&`{^sN%j+bx7&epkv#zK=Ww6DYC!J&!P+#(v0>O^PPxxYtdz!tj`0-m*tT?-7XVC z=mMWxz&`^XjH;4sbS)cdFAl`p=h%Ae21LZuT?bZ19uKGk-(mRF;t=`|=by0q1_w+@ zgHRC~H8UxmOQk~yc&$!}mrmJ0XfF9+oge`p!*mZ1aLq8uWdqJ*5abx@H)|3R@MkTD zA478Qq=?>6hz}5yobLUUOmIRtnRK%aSu6qW>b0D|TdkM%66$5SBJAyk%;qvHE0|?i zE@lf^)oZLsANPyYy(i2KXGdLqY*bsNlJ-3d{2(yCQn>h9L8hcni+IUb)9LHPo1>HX nHL{f6{rd4m96+lYec-btl&ke(Cabbu&9nMWmNL%Z2e5wtl8q|h literal 0 HcmV?d00001 diff --git a/priv/static/static/js/manifest.f40706e221610d4c6256.js.map b/priv/static/static/js/manifest.16ab7851cdbf730f9cbc.js.map similarity index 93% rename from priv/static/static/js/manifest.f40706e221610d4c6256.js.map rename to priv/static/static/js/manifest.16ab7851cdbf730f9cbc.js.map index 90a232a1e40d8b0a1589f6caf965167345a289e1..ca7bfc238b07b276b91946d9e9bb77d59df74ced 100644 GIT binary patch delta 198 zcmZ4PzTAC+xrm`zVv@OqsbO+TQkuE3L7HW9Qu0J^Wnn{uv{Zw%MB_B`loX2;gQS$y zq>YU)Sh1?#T+8;2SH#db8K^AL&>%I*)X+3JCCwr=WplfT2@`fb=fw=UvFj00%3)N; aV!we>td3G~erZv1YEXWDiISC)QY`>6=sl?b delta 198 zcmZ4PzTAC+xk#Fcfw_TMs*#bQnV~_7NwS%dso6wtWnt5_#1zXU!=xm$q!a^lBU95P z!;OtESh1?#T+8;2SH!@`GRep|$=K4!(A3!6$lTD<)M9hHhzS#RJ?F&?xv}dJQOaRd b$6~*MQml?raeir0a%xb1euK-Znui^-*MV>7YQ!b zN zVC*hG*2IKmw2gbdAPsRWA(9o_+`ZSd0k!va?j{r5FkQGUQAM*Ik0muHS5t0GbBW~@ z47x&!C3)XWL{dctKkg17JT+E(?Jovs&E4Z!eYe_x^_Sb8h6p?!$54nZGvUG44t6}Y zS8=(#tH6@FT2?;BgF&aJAs*+!d{ZQUnV$q1#K#HluI6(V>{hHzHc6Lz3a`rpx!o>d zjHv=%TG)REJZV`*$!I9+Yp)K3+vm_YXnTZ((+vYlElx*Jp69@hs#gC|Hh9H zqZ)XLaL`ONdnpwbxQC%SMow61Ji@uAy>$$Ec=po+f8s-iXew%M9e9RLzIwMp0paeV zME_%G>a1YF`w4QMdnu*|H$@YeAc`jKY=agV=j&=E<`2tNR%N`(c1uLk4NB7WE}ie@ z>vXo5FVp30y;z|x>=&p9hY0V_4yycE%chJq?mFV>kwJI`mXZGRYuKXW1+%A4HZevM_@lx%mSC-6*U8 From 1197ec10a83c2e61251abe383bea2bcc690d9c09 Mon Sep 17 00:00:00 2001 From: Francis Dinh Date: Thu, 24 May 2018 13:26:59 -0400 Subject: [PATCH 32/52] Rewrite block fetch query --- lib/pleroma/web/activity_pub/utils.ex | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index 3f88a4672..89d11781d 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -366,8 +366,9 @@ def fetch_latest_block(%User{ap_id: blocker_id}, %User{ap_id: blocked_id}) do fragment( "? @> ?", activity.data, - ^%{type: "Block", actor: blocker_id, object: blocked_id} + ^%{type: "Block", object: blocked_id} ), + where: activity.actor == ^blocker_id, order_by: [desc: :id], limit: 1 ) From 8d2ee70da18bf057041260ca311127daae9a6f09 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Fri, 25 May 2018 03:14:49 +0000 Subject: [PATCH 33/52] testsuite: fix module name for CommonAPI.Test (was duplicated with CommonAPI.UtilsTest) --- test/web/common_api/common_api_test.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index b597e6e0a..a5da271b3 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -1,4 +1,4 @@ -defmodule Pleroma.Web.CommonAPI.UtilsTest do +defmodule Pleroma.Web.CommonAPI.Test do use Pleroma.DataCase alias Pleroma.Web.CommonAPI From 1d88abf2d4834a6dac95c655b9d27cf50377010a Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Fri, 25 May 2018 03:16:02 +0000 Subject: [PATCH 34/52] user: do not allow refollowing somebody who has blocked a user --- lib/pleroma/user.ex | 37 +++++++++++++++++++++---------------- test/user_test.exs | 9 +++++++++ 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 690cc7cf3..508f14584 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -170,25 +170,30 @@ def register_changeset(struct, params \\ %{}) do def follow(%User{} = follower, %User{info: info} = followed) do ap_followers = followed.follower_address - if following?(follower, followed) or info["deactivated"] do - {:error, "Could not follow user: #{followed.nickname} is already on your list."} - else - if !followed.local && follower.local && !ap_enabled?(followed) do - Websub.subscribe(follower, followed) - end + cond do + following?(follower, followed) or info["deactivated"] -> + {:error, "Could not follow user: #{followed.nickname} is already on your list."} - following = - [ap_followers | follower.following] - |> Enum.uniq() + blocks?(followed, follower) -> + {:error, "Could not follow user: #{followed.nickname} blocked you."} + + true -> + if !followed.local && follower.local && !ap_enabled?(followed) do + Websub.subscribe(follower, followed) + end + + following = + [ap_followers | follower.following] + |> Enum.uniq() + + follower = + follower + |> follow_changeset(%{following: following}) + |> update_and_set_cache + + {:ok, _} = update_follower_count(followed) - follower = follower - |> follow_changeset(%{following: following}) - |> update_and_set_cache - - {:ok, _} = update_follower_count(followed) - - follower end end diff --git a/test/user_test.exs b/test/user_test.exs index 9506b58fa..8c8cfd673 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -46,6 +46,15 @@ test "can't follow a deactivated users" do {:error, _} = User.follow(user, followed) end + test "can't follow a user who blocked us" do + blocker = insert(:user) + blockee = insert(:user) + + {:ok, blocker} = User.block(blocker, blockee) + + {:error, _} = User.follow(blockee, blocker) + end + # This is a somewhat useless test. # test "following a remote user will ensure a websub subscription is present" do # user = insert(:user) From 47dc52a75882497d00338d07a24ce978cc0f8300 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Fri, 25 May 2018 05:19:11 +0000 Subject: [PATCH 35/52] activitypub utils: optimize block and follow activity lookup multi-field @> comparison is very expensive, so only use @> for the field where it matters this makes the query take only a few usec to execute verses many msec on a busy instance --- lib/pleroma/web/activity_pub/utils.ex | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index 831e13b7e..cb2e1e078 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -240,11 +240,16 @@ def fetch_latest_follow(%User{ap_id: follower_id}, %User{ap_id: followed_id}) do activity in Activity, where: fragment( - "? @> ?", - activity.data, - ^%{type: "Follow", object: followed_id} + "? ->> 'type' = 'Follow'", + activity.data ), where: activity.actor == ^follower_id, + where: + fragment( + "? @> ?", + activity.data, + ^%{object: followed_id} + ), order_by: [desc: :id], limit: 1 ) @@ -365,11 +370,16 @@ def fetch_latest_block(%User{ap_id: blocker_id}, %User{ap_id: blocked_id}) do activity in Activity, where: fragment( - "? @> ?", - activity.data, - ^%{type: "Block", object: blocked_id} + "? ->> 'type' = 'Block'", + activity.data ), where: activity.actor == ^blocker_id, + where: + fragment( + "? @> ?", + activity.data, + ^%{object: blocked_id} + ), order_by: [desc: :id], limit: 1 ) From 5f06a1a3c51fcc2b3782879ed900e13266bfd18e Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Fri, 25 May 2018 03:14:49 +0000 Subject: [PATCH 36/52] testsuite: fix module name for CommonAPI.Test (was duplicated with CommonAPI.UtilsTest) --- test/web/common_api/common_api_test.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index b597e6e0a..a5da271b3 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -1,4 +1,4 @@ -defmodule Pleroma.Web.CommonAPI.UtilsTest do +defmodule Pleroma.Web.CommonAPI.Test do use Pleroma.DataCase alias Pleroma.Web.CommonAPI From 1f3eb0f470c41aa0c9757756e28b8ae9ef1a2366 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Fri, 25 May 2018 03:14:49 +0000 Subject: [PATCH 37/52] testsuite: fix module name for CommonAPI.Test (was duplicated with CommonAPI.UtilsTest) --- test/web/common_api/common_api_test.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index b597e6e0a..a5da271b3 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -1,4 +1,4 @@ -defmodule Pleroma.Web.CommonAPI.UtilsTest do +defmodule Pleroma.Web.CommonAPI.Test do use Pleroma.DataCase alias Pleroma.Web.CommonAPI From c0ca9f82b991d89524a8f0f770f4b7b08da59e2f Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Fri, 25 May 2018 04:15:42 +0000 Subject: [PATCH 38/52] mastodon api: properly track if an account is locked or not --- lib/pleroma/user.ex | 3 ++- lib/pleroma/web/activity_pub/activity_pub.ex | 4 +++- lib/pleroma/web/activity_pub/views/user_view.ex | 2 +- lib/pleroma/web/mastodon_api/views/account_view.ex | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 690cc7cf3..2e57f2b43 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -67,7 +67,8 @@ def user_info(%User{} = user) do %{ following_count: length(user.following) - oneself, note_count: user.info["note_count"] || 0, - follower_count: user.info["follower_count"] || 0 + follower_count: user.info["follower_count"] || 0, + locked: user.info["locked"] || false } end diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 8485a8009..30211072b 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -464,6 +464,7 @@ def user_data_from_user_object(data) do "url" => [%{"href" => data["image"]["url"]}] } + locked = data["manuallyApprovesFollowers"] || false data = Transmogrifier.maybe_fix_user_object(data) user_data = %{ @@ -471,7 +472,8 @@ def user_data_from_user_object(data) do info: %{ "ap_enabled" => true, "source_data" => data, - "banner" => banner + "banner" => banner, + "locked" => locked }, avatar: avatar, nickname: "#{data["preferredUsername"]}@#{URI.parse(data["id"]).host}", diff --git a/lib/pleroma/web/activity_pub/views/user_view.ex b/lib/pleroma/web/activity_pub/views/user_view.ex index ffd76b529..f4b2e0610 100644 --- a/lib/pleroma/web/activity_pub/views/user_view.ex +++ b/lib/pleroma/web/activity_pub/views/user_view.ex @@ -26,7 +26,7 @@ def render("user.json", %{user: user}) do "name" => user.name, "summary" => user.bio, "url" => user.ap_id, - "manuallyApprovesFollowers" => false, + "manuallyApprovesFollowers" => user.info["locked"] || false, "publicKey" => %{ "id" => "#{user.ap_id}#main-key", "owner" => user.ap_id, diff --git a/lib/pleroma/web/mastodon_api/views/account_view.ex b/lib/pleroma/web/mastodon_api/views/account_view.ex index f378bb36e..9db683f44 100644 --- a/lib/pleroma/web/mastodon_api/views/account_view.ex +++ b/lib/pleroma/web/mastodon_api/views/account_view.ex @@ -19,7 +19,7 @@ def render("account.json", %{user: user}) do username: hd(String.split(user.nickname, "@")), acct: user.nickname, display_name: user.name || user.nickname, - locked: false, + locked: user_info.locked, created_at: Utils.to_masto_date(user.inserted_at), followers_count: user_info.follower_count, following_count: user_info.following_count, From 502ba33d01bc73cc40fc6734c086fa4b58a76634 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Fri, 25 May 2018 06:09:01 +0000 Subject: [PATCH 39/52] activitypub: fix up accept/reject semantics for following fixes #175 --- .../web/activity_pub/transmogrifier.ex | 43 +++++++++++++++++++ .../mastodon_api/mastodon_api_controller.ex | 2 - 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 803445011..eaa716cea 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -7,6 +7,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do alias Pleroma.Activity alias Pleroma.Repo alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.ActivityPub.Utils import Ecto.Query @@ -145,6 +146,48 @@ def handle_incoming( end end + defp get_follow_activity(follow_object) do + cond do + is_map(follow_object) -> + {:ok, follow_object} + + is_binary(follow_object) -> + object = get_obj_helper(follow_object) || ActivityPub.fetch_object_from_id(follow_object) + if object do + {:ok, object} + else + {:error, nil} + end + + true -> + {:error, nil} + end + end + + def handle_incoming( + %{"type" => "Accept", "object" => follow_object, "actor" => actor, "id" => id} = data + ) do + with %User{} = followed <- User.get_or_fetch_by_ap_id(actor), + {:ok, follow_activity} <- get_follow_activity(follow_object), + %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity["actor"]) do + User.follow(follower, followed) + + {:ok, data} + end + end + + def handle_incoming( + %{"type" => "Reject", "object" => follow_object, "actor" => actor, "id" => id} = data + ) do + with %User{} = followed <- User.get_or_fetch_by_ap_id(actor), + {:ok, follow_activity} <- get_follow_activity(follow_object), + %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity["actor"]), + {:ok, follow_activity} <- Utils.fetch_latest_follow(follower, followed), + {:ok, activity} <- ActivityPub.delete(follow_activity, false) do + {:ok, activity} + end + end + def handle_incoming( %{"type" => "Like", "object" => object_id, "actor" => actor, "id" => id} = _data ) do diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index 460942f1a..d50d2d9b5 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -429,7 +429,6 @@ def following(conn, %{"id" => id}) do def follow(%{assigns: %{user: follower}} = conn, %{"id" => id}) do with %User{} = followed <- Repo.get(User, id), - {:ok, follower} <- User.follow(follower, followed), {:ok, _activity} <- ActivityPub.follow(follower, followed) do render(conn, AccountView, "relationship.json", %{user: follower, target: followed}) else @@ -442,7 +441,6 @@ def follow(%{assigns: %{user: follower}} = conn, %{"id" => id}) do def follow(%{assigns: %{user: follower}} = conn, %{"uri" => uri}) do with %User{} = followed <- Repo.get_by(User, nickname: uri), - {:ok, follower} <- User.follow(follower, followed), {:ok, _activity} <- ActivityPub.follow(follower, followed) do render(conn, AccountView, "account.json", %{user: followed}) else From 62c95e8d4d1d5ee2161eaee34523509af78a555f Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Fri, 25 May 2018 08:03:34 +0000 Subject: [PATCH 40/52] run mix format --- lib/pleroma/web/activity_pub/transmogrifier.ex | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index eaa716cea..525b74135 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -153,6 +153,7 @@ defp get_follow_activity(follow_object) do is_binary(follow_object) -> object = get_obj_helper(follow_object) || ActivityPub.fetch_object_from_id(follow_object) + if object do {:ok, object} else From c89b90222c50dcb6f08e8987709dd2bac961f1cb Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Fri, 25 May 2018 08:35:38 +0000 Subject: [PATCH 41/52] twitter api: also remove explicit User.follow here --- lib/pleroma/web/twitter_api/twitter_api.ex | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex index 3ccdaed6f..903c99a8e 100644 --- a/lib/pleroma/web/twitter_api/twitter_api.ex +++ b/lib/pleroma/web/twitter_api/twitter_api.ex @@ -25,7 +25,6 @@ def delete(%User{} = user, id) do def follow(%User{} = follower, params) do with {:ok, %User{} = followed} <- get_user(params), - {:ok, follower} <- User.follow(follower, followed), {:ok, activity} <- ActivityPub.follow(follower, followed) do {:ok, follower, followed, activity} else From e80d91c64a53a9d64e48a528f40987c5b36f2ca5 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Fri, 25 May 2018 09:31:42 +0000 Subject: [PATCH 42/52] introduce User.maybe_direct_follow() and use it where we used to call User.follow() --- lib/pleroma/user.ex | 29 +++++++++++++++++++ .../mastodon_api/mastodon_api_controller.ex | 2 ++ lib/pleroma/web/twitter_api/twitter_api.ex | 1 + 3 files changed, 32 insertions(+) diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 2e57f2b43..e4fb57308 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -168,6 +168,35 @@ def register_changeset(struct, params \\ %{}) do end end + def maybe_direct_follow(%User{} = follower, %User{info: info} = followed) do + user_info = user_info(followed) + + should_direct_follow = + cond do + # if the account is locked, don't pre-create the relationship + user_info.locked == true -> + false + + # if the users are blocking each other, we shouldn't even be here, but check for it anyway + User.blocks?(follower, followed) == true or User.blocks?(followed, follower) == true -> + false + + # if OStatus, then there is no three-way handshake to follow + User.ap_enabled?(followed) != true -> + true + + # if there are no other reasons not to, just pre-create the relationship + true -> + true + end + + if should_direct_follow do + follow(follower, followed) + else + follower + end + end + def follow(%User{} = follower, %User{info: info} = followed) do ap_followers = followed.follower_address diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index d50d2d9b5..e12d3fb5b 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -429,6 +429,7 @@ def following(conn, %{"id" => id}) do def follow(%{assigns: %{user: follower}} = conn, %{"id" => id}) do with %User{} = followed <- Repo.get(User, id), + {:ok, follower} <- User.maybe_direct_follow(follower, followed), {:ok, _activity} <- ActivityPub.follow(follower, followed) do render(conn, AccountView, "relationship.json", %{user: follower, target: followed}) else @@ -441,6 +442,7 @@ def follow(%{assigns: %{user: follower}} = conn, %{"id" => id}) do def follow(%{assigns: %{user: follower}} = conn, %{"uri" => uri}) do with %User{} = followed <- Repo.get_by(User, nickname: uri), + {:ok, follower} <- User.maybe_direct_follow(follower, followed), {:ok, _activity} <- ActivityPub.follow(follower, followed) do render(conn, AccountView, "account.json", %{user: followed}) else diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex index 903c99a8e..331efa90b 100644 --- a/lib/pleroma/web/twitter_api/twitter_api.ex +++ b/lib/pleroma/web/twitter_api/twitter_api.ex @@ -25,6 +25,7 @@ def delete(%User{} = user, id) do def follow(%User{} = follower, params) do with {:ok, %User{} = followed} <- get_user(params), + {:ok, follower} <- User.maybe_direct_follow(follower, followed), {:ok, activity} <- ActivityPub.follow(follower, followed) do {:ok, follower, followed, activity} else From f35e6bf75bf81496a5c7192780d9db62ba6b42a9 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Fri, 25 May 2018 09:38:07 +0000 Subject: [PATCH 43/52] activitypub transmogrifier: clean up accept/reject handling a bit --- lib/pleroma/web/activity_pub/transmogrifier.ex | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 525b74135..519548788 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -171,7 +171,9 @@ def handle_incoming( with %User{} = followed <- User.get_or_fetch_by_ap_id(actor), {:ok, follow_activity} <- get_follow_activity(follow_object), %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity["actor"]) do - User.follow(follower, followed) + if not User.following?(follower, followed) do + User.follow(follower, followed) + end {:ok, data} end @@ -182,10 +184,10 @@ def handle_incoming( ) do with %User{} = followed <- User.get_or_fetch_by_ap_id(actor), {:ok, follow_activity} <- get_follow_activity(follow_object), - %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity["actor"]), - {:ok, follow_activity} <- Utils.fetch_latest_follow(follower, followed), - {:ok, activity} <- ActivityPub.delete(follow_activity, false) do - {:ok, activity} + %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity["actor"]) do + User.unfollow(follower, followed) + + {:ok, data} end end From 7cf3cf77cfffd1e1f6187d7a3485bf2a5d18ca00 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Fri, 25 May 2018 12:51:04 +0000 Subject: [PATCH 44/52] activitypub transmogrifier: cleanups and tests for incoming accepts/rejects --- .../web/activity_pub/transmogrifier.ex | 16 +-- test/fixtures/mastodon-reject-activity.json | 34 ++++++ test/web/activity_pub/transmogrifier_test.exs | 109 ++++++++++++++++++ 3 files changed, 152 insertions(+), 7 deletions(-) create mode 100644 test/fixtures/mastodon-reject-activity.json diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 519548788..41198d4e6 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -152,10 +152,10 @@ defp get_follow_activity(follow_object) do {:ok, follow_object} is_binary(follow_object) -> - object = get_obj_helper(follow_object) || ActivityPub.fetch_object_from_id(follow_object) + object = Activity.get_by_ap_id(follow_object) if object do - {:ok, object} + {:ok, object.data} else {:error, nil} end @@ -170,12 +170,13 @@ def handle_incoming( ) do with %User{} = followed <- User.get_or_fetch_by_ap_id(actor), {:ok, follow_activity} <- get_follow_activity(follow_object), - %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity["actor"]) do + %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity["actor"]), + {:ok, activity} <- ActivityPub.insert(data, true) do if not User.following?(follower, followed) do - User.follow(follower, followed) + {:ok, follower} = User.follow(follower, followed) end - {:ok, data} + {:ok, activity} end end @@ -184,10 +185,11 @@ def handle_incoming( ) do with %User{} = followed <- User.get_or_fetch_by_ap_id(actor), {:ok, follow_activity} <- get_follow_activity(follow_object), - %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity["actor"]) do + %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity["actor"]), + {:ok, activity} <- ActivityPub.insert(data, true) do User.unfollow(follower, followed) - {:ok, data} + {:ok, activity} end end diff --git a/test/fixtures/mastodon-reject-activity.json b/test/fixtures/mastodon-reject-activity.json new file mode 100644 index 000000000..9559d6c73 --- /dev/null +++ b/test/fixtures/mastodon-reject-activity.json @@ -0,0 +1,34 @@ +{ + "type": "Reject", + "signature": { + "type": "RsaSignature2017", + "signatureValue": "rBzK4Kqhd4g7HDS8WE5oRbWQb2R+HF/6awbUuMWhgru/xCODT0SJWSri0qWqEO4fPcpoUyz2d25cw6o+iy9wiozQb3hQNnu69AR+H5Mytc06+g10KCHexbGhbAEAw/7IzmeXELHUbaqeduaDIbdt1zw4RkwLXdqgQcGXTJ6ND1wM3WMHXQCK1m0flasIXFoBxpliPAGiElV8s0+Ltuh562GvflG3kB3WO+j+NaR0ZfG5G9N88xMj9UQlCKit5gpAE5p6syUsCU2WGBHywTumv73i3OVTIFfq+P9AdMsRuzw1r7zoKEsthW4aOzLQDi01ZjvdBz8zH6JnjDU7SMN/Ig==", + "creator": "http://mastodon.example.org/users/admin#main-key", + "created": "2018-02-17T14:36:41Z" + }, + "object": { + "type": "Follow", + "object": "http://mastodon.example.org/users/admin", + "id": "http://localtesting.pleroma.lol/users/lain#follows/4", + "actor": "http://localtesting.pleroma.lol/users/lain" + }, + "nickname": "lain", + "id": "http://mastodon.example.org/users/admin#rejects/follows/4", + "actor": "http://mastodon.example.org/users/admin", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + { + "toot": "http://joinmastodon.org/ns#", + "sensitive": "as:sensitive", + "ostatus": "http://ostatus.org#", + "movedTo": "as:movedTo", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", + "inReplyToAtomUri": "ostatus:inReplyToAtomUri", + "conversation": "ostatus:conversation", + "atomUri": "ostatus:atomUri", + "Hashtag": "as:Hashtag", + "Emoji": "toot:Emoji" + } + ] +} diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index cf6b1d0b5..b51e02b08 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -2,6 +2,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do use Pleroma.DataCase alias Pleroma.Web.ActivityPub.Transmogrifier alias Pleroma.Web.ActivityPub.Utils + alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.OStatus alias Pleroma.Activity alias Pleroma.User @@ -385,6 +386,114 @@ test "it works for incoming unblocks with an existing block" do refute User.blocks?(blocker, user) end + + test "it works for incoming accepts which were pre-accepted" do + follower = insert(:user) + followed = insert(:user) + + {:ok, follower} = User.follow(follower, followed) + assert User.following?(follower, followed) == true + + accept_data = + File.read!("test/fixtures/mastodon-accept-activity.json") + |> Poison.decode!() + |> Map.put("actor", followed.ap_id) + + accept_data = + Map.put(accept_data, "object", Map.put(accept_data["object"], "actor", follower.ap_id)) + + {:ok, %Activity{data: _}} = Transmogrifier.handle_incoming(accept_data) + + follower = Repo.get(User, follower.id) + + assert User.following?(follower, followed) == true + end + + test "it works for incoming accepts which were orphaned" do + follower = insert(:user) + followed = insert(:user, %{info: %{"locked" => true}}) + + {:ok, follow_activity} = ActivityPub.follow(follower, followed) + + accept_data = + File.read!("test/fixtures/mastodon-accept-activity.json") + |> Poison.decode!() + |> Map.put("actor", followed.ap_id) + + accept_data = + Map.put(accept_data, "object", Map.put(accept_data["object"], "actor", follower.ap_id)) + + {:ok, %Activity{data: _}} = Transmogrifier.handle_incoming(accept_data) + + follower = Repo.get(User, follower.id) + + assert User.following?(follower, followed) == true + end + + test "it works for incoming accepts which are referenced by IRI only" do + follower = insert(:user) + followed = insert(:user, %{info: %{"locked" => true}}) + + {:ok, follow_activity} = ActivityPub.follow(follower, followed) + + accept_data = + File.read!("test/fixtures/mastodon-accept-activity.json") + |> Poison.decode!() + |> Map.put("actor", followed.ap_id) + |> Map.put("object", follow_activity.data["id"]) + + {:ok, %Activity{data: _}} = Transmogrifier.handle_incoming(accept_data) + + follower = Repo.get(User, follower.id) + + assert User.following?(follower, followed) == true + end + + test "it works for incoming rejects which are orphaned" do + follower = insert(:user) + followed = insert(:user, %{info: %{"locked" => true}}) + + {:ok, follower} = User.follow(follower, followed) + {:ok, follow_activity} = ActivityPub.follow(follower, followed) + + assert User.following?(follower, followed) == true + + reject_data = + File.read!("test/fixtures/mastodon-reject-activity.json") + |> Poison.decode!() + |> Map.put("actor", followed.ap_id) + + reject_data = + Map.put(reject_data, "object", Map.put(reject_data["object"], "actor", follower.ap_id)) + + {:ok, %Activity{data: _}} = Transmogrifier.handle_incoming(reject_data) + + follower = Repo.get(User, follower.id) + + assert User.following?(follower, followed) == false + end + + test "it works for incoming rejects which are referenced by IRI only" do + follower = insert(:user) + followed = insert(:user, %{info: %{"locked" => true}}) + + {:ok, follower} = User.follow(follower, followed) + {:ok, follow_activity} = ActivityPub.follow(follower, followed) + + assert User.following?(follower, followed) == true + + reject_data = + File.read!("test/fixtures/mastodon-reject-activity.json") + |> Poison.decode!() + |> Map.put("actor", followed.ap_id) + |> Map.put("object", follow_activity.data["id"]) + + {:ok, %Activity{data: _}} = Transmogrifier.handle_incoming(reject_data) + + follower = Repo.get(User, follower.id) + + assert User.following?(follower, followed) == false + end end describe "prepare outgoing" do From 1c926c7b60b999311d01266bb65187e1be5adc1e Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Sat, 26 May 2018 08:24:50 +0000 Subject: [PATCH 45/52] activitypub: allow mastodon S2S block extension support to be disabled --- config/config.exs | 2 ++ lib/pleroma/web/activity_pub/transmogrifier.ex | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/config/config.exs b/config/config.exs index d3f9cf6e4..826dd07b7 100644 --- a/config/config.exs +++ b/config/config.exs @@ -56,6 +56,8 @@ rewrite_policy: Pleroma.Web.ActivityPub.MRF.NoOpPolicy, public: true +config :pleroma, :activitypub, accept_blocks: true + config :pleroma, :mrf_simple, media_removal: [], media_nsfw: [], diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 803445011..eada4334e 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -259,6 +259,9 @@ def handle_incoming( end end + @ap_config Application.get_env(:pleroma, :activitypub) + @accept_blocks Keyword.get(@ap_config, :accept_blocks) + def handle_incoming( %{ "type" => "Undo", @@ -267,7 +270,8 @@ def handle_incoming( "id" => id } = _data ) do - with %User{local: true} = blocked <- User.get_cached_by_ap_id(blocked), + with true <- @accept_blocks, + %User{local: true} = blocked <- User.get_cached_by_ap_id(blocked), %User{} = blocker <- User.get_or_fetch_by_ap_id(blocker), {:ok, activity} <- ActivityPub.unblock(blocker, blocked, id, false) do User.unblock(blocker, blocked) @@ -280,7 +284,8 @@ def handle_incoming( def handle_incoming( %{"type" => "Block", "object" => blocked, "actor" => blocker, "id" => id} = data ) do - with %User{local: true} = blocked = User.get_cached_by_ap_id(blocked), + with true <- @accept_blocks, + %User{local: true} = blocked = User.get_cached_by_ap_id(blocked), %User{} = blocker = User.get_or_fetch_by_ap_id(blocker), {:ok, activity} <- ActivityPub.block(blocker, blocked, id, false) do User.unfollow(blocker, blocked) From 7e873756e7e2c669f9dc460b7d6356fb7d25b9dd Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Sat, 26 May 2018 11:07:04 +0000 Subject: [PATCH 46/52] activitypub transmogrifier: use fetch_latest_follow to verify a follow object exists --- lib/pleroma/web/activity_pub/transmogrifier.ex | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 41198d4e6..ff83dfd36 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -171,12 +171,16 @@ def handle_incoming( with %User{} = followed <- User.get_or_fetch_by_ap_id(actor), {:ok, follow_activity} <- get_follow_activity(follow_object), %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity["actor"]), + follow_activity <- Utils.fetch_latest_follow(follower, followed), + false <- is_nil(follow_activity), {:ok, activity} <- ActivityPub.insert(data, true) do if not User.following?(follower, followed) do {:ok, follower} = User.follow(follower, followed) end {:ok, activity} + else + _e -> :error end end @@ -186,10 +190,14 @@ def handle_incoming( with %User{} = followed <- User.get_or_fetch_by_ap_id(actor), {:ok, follow_activity} <- get_follow_activity(follow_object), %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity["actor"]), + follow_activity <- Utils.fetch_latest_follow(follower, followed), + false <- is_nil(follow_activity), {:ok, activity} <- ActivityPub.insert(data, true) do User.unfollow(follower, followed) {:ok, activity} + else + _e -> :error end end From 1db0dc30728a64cf5a9905bcc5df5af9ff3c677b Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Sat, 26 May 2018 11:16:05 +0000 Subject: [PATCH 47/52] tests: add tests to verify the accept request is discarded if no follow activity could be found --- test/web/activity_pub/transmogrifier_test.exs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index b51e02b08..e4cff898d 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -394,6 +394,8 @@ test "it works for incoming accepts which were pre-accepted" do {:ok, follower} = User.follow(follower, followed) assert User.following?(follower, followed) == true + {:ok, follow_activity} = ActivityPub.follow(follower, followed) + accept_data = File.read!("test/fixtures/mastodon-accept-activity.json") |> Poison.decode!() @@ -449,6 +451,25 @@ test "it works for incoming accepts which are referenced by IRI only" do assert User.following?(follower, followed) == true end + test "it fails for incoming accepts which cannot be correlated" do + follower = insert(:user) + followed = insert(:user, %{info: %{"locked" => true}}) + + accept_data = + File.read!("test/fixtures/mastodon-accept-activity.json") + |> Poison.decode!() + |> Map.put("actor", followed.ap_id) + + accept_data = + Map.put(accept_data, "object", Map.put(accept_data["object"], "actor", follower.ap_id)) + + :error = Transmogrifier.handle_incoming(accept_data) + + follower = Repo.get(User, follower.id) + + refute User.following?(follower, followed) == true + end + test "it works for incoming rejects which are orphaned" do follower = insert(:user) followed = insert(:user, %{info: %{"locked" => true}}) From dd9bb3789302f1f8e0e6cc61623b37251ff4ad4c Mon Sep 17 00:00:00 2001 From: lain Date: Sat, 26 May 2018 13:52:05 +0200 Subject: [PATCH 48/52] Rename id helper method. --- lib/pleroma/plugs/http_signature.ex | 2 +- lib/pleroma/web/activity_pub/transmogrifier.ex | 9 +-------- lib/pleroma/web/activity_pub/utils.ex | 13 +++++-------- lib/pleroma/web/http_signatures/http_signatures.ex | 4 ++-- 4 files changed, 9 insertions(+), 19 deletions(-) diff --git a/lib/pleroma/plugs/http_signature.ex b/lib/pleroma/plugs/http_signature.ex index 2d0e10cad..38bcd3a78 100644 --- a/lib/pleroma/plugs/http_signature.ex +++ b/lib/pleroma/plugs/http_signature.ex @@ -13,7 +13,7 @@ def call(%{assigns: %{valid_signature: true}} = conn, _opts) do end def call(conn, _opts) do - user = Utils.normalize_actor(conn.params["actor"]) + user = Utils.get_ap_id(conn.params["actor"]) Logger.debug("Checking sig for #{user}") [signature | _] = get_req_header(conn, "signature") diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index ff83dfd36..690ca62ec 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -263,11 +263,7 @@ def handle_incoming( def handle_incoming( %{"type" => "Delete", "object" => object_id, "actor" => actor, "id" => _id} = _data ) do - object_id = - case object_id do - %{"id" => id} -> id - id -> id - end + object_id = Utils.get_ap_id(object_id) with %User{} = _actor <- User.get_or_fetch_by_ap_id(actor), {:ok, object} <- @@ -365,9 +361,6 @@ def handle_incoming( end end - # TODO - # Accept - def handle_incoming(_), do: :error def get_obj_helper(id) do diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index 831e13b7e..7362a3ccf 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -7,18 +7,15 @@ defmodule Pleroma.Web.ActivityPub.Utils do # Some implementations send the actor URI as the actor field, others send the entire actor object, # so figure out what the actor's URI is based on what we have. - def normalize_actor(actor) do - cond do - is_binary(actor) -> - actor - - is_map(actor) -> - actor["id"] + def get_ap_id(object) do + case object do + %{"id" => id} -> id + id -> id end end def normalize_params(params) do - Map.put(params, "actor", normalize_actor(params["actor"])) + Map.put(params, "actor", get_ap_id(params["actor"])) end def make_json_ld_header do diff --git a/lib/pleroma/web/http_signatures/http_signatures.ex b/lib/pleroma/web/http_signatures/http_signatures.ex index 4e0adbc1d..5e42a871b 100644 --- a/lib/pleroma/web/http_signatures/http_signatures.ex +++ b/lib/pleroma/web/http_signatures/http_signatures.ex @@ -32,14 +32,14 @@ def validate(headers, signature, public_key) do def validate_conn(conn) do # TODO: How to get the right key and see if it is actually valid for that request. # For now, fetch the key for the actor. - with actor_id <- Utils.normalize_actor(conn.params["actor"]), + with actor_id <- Utils.get_ap_id(conn.params["actor"]), {:ok, public_key} <- User.get_public_key_for_ap_id(actor_id) do if validate_conn(conn, public_key) do true else Logger.debug("Could not validate, re-fetching user and trying one more time") # Fetch user anew and try one more time - with actor_id <- Utils.normalize_actor(conn.params["actor"]), + with actor_id <- Utils.get_ap_id(conn.params["actor"]), {:ok, _user} <- ActivityPub.make_user_from_ap_id(actor_id), {:ok, public_key} <- User.get_public_key_for_ap_id(actor_id) do validate_conn(conn, public_key) From 3839a11ef51a7602bd4c0b5c5d1318bb9cedd213 Mon Sep 17 00:00:00 2001 From: lain Date: Sat, 26 May 2018 14:07:46 +0200 Subject: [PATCH 49/52] Don't treat remote accepts/rejects as local. Also, use specialized functions to get safe data. --- lib/pleroma/web/activity_pub/activity_pub.ex | 11 +++++++ .../web/activity_pub/transmogrifier.ex | 4 +-- test/web/activity_pub/transmogrifier_test.exs | 33 ++++++++++++++++--- 3 files changed, 42 insertions(+), 6 deletions(-) diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 30211072b..1a1bfbffd 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -95,6 +95,17 @@ def accept(%{to: to, actor: actor, object: object} = params) do end end + def reject(%{to: to, actor: actor, object: object} = params) do + # only accept false as false value + local = !(params[:local] == false) + + with data <- %{"to" => to, "type" => "Reject", "actor" => actor, "object" => object}, + {:ok, activity} <- insert(data, local), + :ok <- maybe_federate(activity) do + {:ok, activity} + end + end + def update(%{to: to, cc: cc, actor: actor, object: object} = params) do # only accept false as false value local = !(params[:local] == false) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 690ca62ec..b2224514c 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -173,7 +173,7 @@ def handle_incoming( %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity["actor"]), follow_activity <- Utils.fetch_latest_follow(follower, followed), false <- is_nil(follow_activity), - {:ok, activity} <- ActivityPub.insert(data, true) do + {:ok, activity} <- ActivityPub.accept(%{to: follow_activity.data["to"], type: "Accept", actor: followed.ap_id, object: follow_activity.data["id"], local: false}) do if not User.following?(follower, followed) do {:ok, follower} = User.follow(follower, followed) end @@ -192,7 +192,7 @@ def handle_incoming( %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity["actor"]), follow_activity <- Utils.fetch_latest_follow(follower, followed), false <- is_nil(follow_activity), - {:ok, activity} <- ActivityPub.insert(data, true) do + {:ok, activity} <- ActivityPub.accept(%{to: follow_activity.data["to"], type: "Accept", actor: followed.ap_id, object: follow_activity.data["id"], local: false}) do User.unfollow(follower, followed) {:ok, activity} diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index e4cff898d..761d9d992 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -404,7 +404,10 @@ test "it works for incoming accepts which were pre-accepted" do accept_data = Map.put(accept_data, "object", Map.put(accept_data["object"], "actor", follower.ap_id)) - {:ok, %Activity{data: _}} = Transmogrifier.handle_incoming(accept_data) + {:ok, activity} = Transmogrifier.handle_incoming(accept_data) + refute activity.local + + assert activity.data["object"] == follow_activity.data["id"] follower = Repo.get(User, follower.id) @@ -425,7 +428,8 @@ test "it works for incoming accepts which were orphaned" do accept_data = Map.put(accept_data, "object", Map.put(accept_data["object"], "actor", follower.ap_id)) - {:ok, %Activity{data: _}} = Transmogrifier.handle_incoming(accept_data) + {:ok, activity} = Transmogrifier.handle_incoming(accept_data) + assert activity.data["object"] == follow_activity.data["id"] follower = Repo.get(User, follower.id) @@ -444,7 +448,8 @@ test "it works for incoming accepts which are referenced by IRI only" do |> Map.put("actor", followed.ap_id) |> Map.put("object", follow_activity.data["id"]) - {:ok, %Activity{data: _}} = Transmogrifier.handle_incoming(accept_data) + {:ok, activity} = Transmogrifier.handle_incoming(accept_data) + assert activity.data["object"] == follow_activity.data["id"] follower = Repo.get(User, follower.id) @@ -470,6 +475,25 @@ test "it fails for incoming accepts which cannot be correlated" do refute User.following?(follower, followed) == true end + test "it fails for incoming rejects which cannot be correlated" do + follower = insert(:user) + followed = insert(:user, %{info: %{"locked" => true}}) + + accept_data = + File.read!("test/fixtures/mastodon-reject-activity.json") + |> Poison.decode!() + |> Map.put("actor", followed.ap_id) + + accept_data = + Map.put(accept_data, "object", Map.put(accept_data["object"], "actor", follower.ap_id)) + + :error = Transmogrifier.handle_incoming(accept_data) + + follower = Repo.get(User, follower.id) + + refute User.following?(follower, followed) == true + end + test "it works for incoming rejects which are orphaned" do follower = insert(:user) followed = insert(:user, %{info: %{"locked" => true}}) @@ -487,7 +511,8 @@ test "it works for incoming rejects which are orphaned" do reject_data = Map.put(reject_data, "object", Map.put(reject_data["object"], "actor", follower.ap_id)) - {:ok, %Activity{data: _}} = Transmogrifier.handle_incoming(reject_data) + {:ok, activity} = Transmogrifier.handle_incoming(reject_data) + refute activity.local follower = Repo.get(User, follower.id) From bfce29866fea3ec7ab91a6b1f20a845248fa0130 Mon Sep 17 00:00:00 2001 From: lain Date: Sat, 26 May 2018 15:07:21 +0200 Subject: [PATCH 50/52] Make Mastodon follow hack more explicit. --- .../web/activity_pub/transmogrifier.ex | 44 ++++++++++--------- test/web/activity_pub/transmogrifier_test.exs | 12 ++--- 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index b2224514c..fee0b5859 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -146,21 +146,27 @@ def handle_incoming( end end - defp get_follow_activity(follow_object) do - cond do - is_map(follow_object) -> - {:ok, follow_object} + defp mastodon_follow_hack(%{"id" => id, "actor" => follower_id}, followed) do + with true <- id =~ "follows", + %User{local: true} = follower <- User.get_cached_by_ap_id(follower_id), + %Activity{} = activity <- Utils.fetch_latest_follow(follower, followed) do + {:ok, activity} + else + _ -> {:error, nil} + end + end - is_binary(follow_object) -> - object = Activity.get_by_ap_id(follow_object) + defp mastodon_follow_hack(_), do: {:error, nil} - if object do - {:ok, object.data} - else - {:error, nil} - end - - true -> + defp get_follow_activity(follow_object, followed) do + with object_id when not is_nil(object_id) <- Utils.get_ap_id(follow_object), + {_, %Activity{} = activity} <- {:activity, Activity.get_by_ap_id(object_id)} do + {:ok, activity} + else + # Can't find the activity. This might a Mastodon 2.3 "Accept" + {:activity, nil} -> + mastodon_follow_hack(follow_object, followed) + _ -> {:error, nil} end end @@ -169,10 +175,8 @@ def handle_incoming( %{"type" => "Accept", "object" => follow_object, "actor" => actor, "id" => id} = data ) do with %User{} = followed <- User.get_or_fetch_by_ap_id(actor), - {:ok, follow_activity} <- get_follow_activity(follow_object), - %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity["actor"]), - follow_activity <- Utils.fetch_latest_follow(follower, followed), - false <- is_nil(follow_activity), + {:ok, follow_activity} <- get_follow_activity(follow_object, followed), + %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity.data["actor"]), {:ok, activity} <- ActivityPub.accept(%{to: follow_activity.data["to"], type: "Accept", actor: followed.ap_id, object: follow_activity.data["id"], local: false}) do if not User.following?(follower, followed) do {:ok, follower} = User.follow(follower, followed) @@ -188,10 +192,8 @@ def handle_incoming( %{"type" => "Reject", "object" => follow_object, "actor" => actor, "id" => id} = data ) do with %User{} = followed <- User.get_or_fetch_by_ap_id(actor), - {:ok, follow_activity} <- get_follow_activity(follow_object), - %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity["actor"]), - follow_activity <- Utils.fetch_latest_follow(follower, followed), - false <- is_nil(follow_activity), + {:ok, follow_activity} <- get_follow_activity(follow_object, followed), + %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity.data["actor"]), {:ok, activity} <- ActivityPub.accept(%{to: follow_activity.data["to"], type: "Accept", actor: followed.ap_id, object: follow_activity.data["id"], local: false}) do User.unfollow(follower, followed) diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 761d9d992..43395eef1 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -8,8 +8,6 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do alias Pleroma.User alias Pleroma.Repo alias Pleroma.Web.Websub.WebsubClientSubscription - alias Pleroma.Web.Websub.WebsubServerSubscription - import Ecto.Query import Pleroma.Factory alias Pleroma.Web.CommonAPI @@ -284,7 +282,7 @@ test "it works for incoming deletes" do |> Map.put("object", object) |> Map.put("actor", activity.data["actor"]) - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + {:ok, %Activity{local: false}} = Transmogrifier.handle_incoming(data) refute Repo.get(Activity, activity.id) end @@ -401,8 +399,12 @@ test "it works for incoming accepts which were pre-accepted" do |> Poison.decode!() |> Map.put("actor", followed.ap_id) + object = accept_data["object"] + |> Map.put("actor", follower.ap_id) + |> Map.put("id", follow_activity.data["id"]) + accept_data = - Map.put(accept_data, "object", Map.put(accept_data["object"], "actor", follower.ap_id)) + Map.put(accept_data, "object", object) {:ok, activity} = Transmogrifier.handle_incoming(accept_data) refute activity.local @@ -499,7 +501,7 @@ test "it works for incoming rejects which are orphaned" do followed = insert(:user, %{info: %{"locked" => true}}) {:ok, follower} = User.follow(follower, followed) - {:ok, follow_activity} = ActivityPub.follow(follower, followed) + {:ok, _follow_activity} = ActivityPub.follow(follower, followed) assert User.following?(follower, followed) == true From 0a6c897c9488b26273a5fbb2de1ae1bfa0c96675 Mon Sep 17 00:00:00 2001 From: lain Date: Sat, 26 May 2018 15:11:50 +0200 Subject: [PATCH 51/52] Formatting. --- .../web/activity_pub/transmogrifier.ex | 19 +++++++++++++++++-- test/web/activity_pub/transmogrifier_test.exs | 10 +++++----- .../mastodon_api_controller_test.exs | 2 +- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index fee0b5859..62667daa2 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -166,6 +166,7 @@ defp get_follow_activity(follow_object, followed) do # Can't find the activity. This might a Mastodon 2.3 "Accept" {:activity, nil} -> mastodon_follow_hack(follow_object, followed) + _ -> {:error, nil} end @@ -177,7 +178,14 @@ def handle_incoming( with %User{} = followed <- User.get_or_fetch_by_ap_id(actor), {:ok, follow_activity} <- get_follow_activity(follow_object, followed), %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity.data["actor"]), - {:ok, activity} <- ActivityPub.accept(%{to: follow_activity.data["to"], type: "Accept", actor: followed.ap_id, object: follow_activity.data["id"], local: false}) do + {:ok, activity} <- + ActivityPub.accept(%{ + to: follow_activity.data["to"], + type: "Accept", + actor: followed.ap_id, + object: follow_activity.data["id"], + local: false + }) do if not User.following?(follower, followed) do {:ok, follower} = User.follow(follower, followed) end @@ -194,7 +202,14 @@ def handle_incoming( with %User{} = followed <- User.get_or_fetch_by_ap_id(actor), {:ok, follow_activity} <- get_follow_activity(follow_object, followed), %User{local: true} = follower <- User.get_cached_by_ap_id(follow_activity.data["actor"]), - {:ok, activity} <- ActivityPub.accept(%{to: follow_activity.data["to"], type: "Accept", actor: followed.ap_id, object: follow_activity.data["id"], local: false}) do + {:ok, activity} <- + ActivityPub.accept(%{ + to: follow_activity.data["to"], + type: "Accept", + actor: followed.ap_id, + object: follow_activity.data["id"], + local: false + }) do User.unfollow(follower, followed) {:ok, activity} diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 43395eef1..384844095 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -399,12 +399,12 @@ test "it works for incoming accepts which were pre-accepted" do |> Poison.decode!() |> Map.put("actor", followed.ap_id) - object = accept_data["object"] - |> Map.put("actor", follower.ap_id) - |> Map.put("id", follow_activity.data["id"]) + object = + accept_data["object"] + |> Map.put("actor", follower.ap_id) + |> Map.put("id", follow_activity.data["id"]) - accept_data = - Map.put(accept_data, "object", object) + accept_data = Map.put(accept_data, "object", object) {:ok, activity} = Transmogrifier.handle_incoming(accept_data) refute activity.local diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs index 0f091b986..936d27182 100644 --- a/test/web/mastodon_api/mastodon_api_controller_test.exs +++ b/test/web/mastodon_api/mastodon_api_controller_test.exs @@ -298,7 +298,7 @@ test "deleting a list", %{conn: conn} do test "list timeline", %{conn: conn} do user = insert(:user) other_user = insert(:user) - {:ok, activity_one} = TwitterAPI.create_status(user, %{"status" => "Marisa is cute."}) + {:ok, _activity_one} = TwitterAPI.create_status(user, %{"status" => "Marisa is cute."}) {:ok, activity_two} = TwitterAPI.create_status(other_user, %{"status" => "Marisa is cute."}) {:ok, list} = Pleroma.List.create("name", user) {:ok, list} = Pleroma.List.follow(list, other_user) From 6138b297836f459e4fe5d21dfed30ddd9397b6d4 Mon Sep 17 00:00:00 2001 From: lain Date: Sat, 26 May 2018 15:20:21 +0200 Subject: [PATCH 52/52] There are no symbols in JSON. --- lib/pleroma/user.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 75e173d0c..b1b935a0f 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -174,7 +174,7 @@ def maybe_direct_follow(%User{} = follower, %User{info: info} = followed) do should_direct_follow = cond do # if the account is locked, don't pre-create the relationship - user_info.locked == true -> + user_info["locked"] == true -> false # if the users are blocking each other, we shouldn't even be here, but check for it anyway

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 bn0qyQ%-ic5v*Khr$X`Mw*m$t9@$vr$Y|Ppi diff --git a/priv/static/static/js/app.13c0bda10eb515cdf8ed.js b/priv/static/static/js/app.13c0bda10eb515cdf8ed.js new file mode 100644 index 0000000000000000000000000000000000000000..4f78c6e22970888e46b6c8569fbce54b875f1b8c GIT binary patch literal 191330 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 literal 0 HcmV?d00001 diff --git a/priv/static/static/js/app.13c0bda10eb515cdf8ed.js.map b/priv/static/static/js/app.13c0bda10eb515cdf8ed.js.map new file mode 100644 index 0000000000000000000000000000000000000000..04d474c8ae42f927a7c0a618dbbe40b560fddeda GIT binary patch literal 874505 zcmdSCYf~G`vab7E&J2IEy)a;dS?9xu?v{`-2yr#WCr%JT2oMMfbm8Lt=g;$IR+U;p z7{**$6czy5XK9t=DE-oO5P`NO}4{qdmH9{%gU|DS(7v`=rF zt?U0@SXda2nxjr@;cB?hyuJOe#pTwg)3fH{r}pWW#V@V1^RMl*|GFCf>qEK8e=Q6L zt%aLrr}siptABIb@3niQ;likM)9!Y9?ey?p_v7}w?n-UO!}j2$)f}9iwEDdf-7GxI zd8rp#-glTJlj-RH{|Xte6DmH8hsKWa@TKlcL=H!tZuev7rg_n(QF?xV54UM_mA)ALTZeKLBw zZ7-y!S9qJ~ak@`#`$Omnvk0lTb`hoMq#7iqz zYO5)ngz2332R93|8E@!gIC_GU!-tMfWIFj$`_AIm-oj0LI7HfBTK{h6bm3O&4x7)6 z%JvJ38U;%F@q%s#k!xKxN3T`s_s%;PuT+x$zC?GD6EV8m4(k#hU+6eB3jAx2T(*q2 zmUy9I2FT5yb7`HMqfxVUc_ZYRJigvc+&Z~!_S)Tr$>STEm4xu)t?;BQmX`DPI+<$! zdegHuTyLM8jz=R@Vk-4|L{fkcT#58>J_AhJV^PU!BINc`*@}a^m%olU&4y*PA4Rbz-{yjYfa4 zdtaTWjeOqeona-Fp5HjS?_So<9^cw*(3e^01KxV#jZLH6dfS+Kz460k|76q$q`Tez zLjb}#dGk7Qk4KByyy$;y%ZtH9nssreYh5+x*TNBM4xt)E9G*Y?*KP0OSw~cn)$zLD zGqE+wX2ur+lu#leKKxKLNpE3phX4_di;&poew9zm8 zsqhVy&20OzyM+3$Q&-;l7s`n@j6S{d(|XDfczx^$ofAvo4Q6fdF2%<=57FgeQqtTzS8hdz!_n1uH$7Z zb-vtuZF(=7D1V(Ut)0I@-5+%Puk*9B<}1zTdnz#yIfH#Rp_NZxmtN^~vZ>GP?|+@1 ze}0Xk^3L#VoA~R~%Gzu4Y8(l6_O#J0dHvK}{Q3&{FPfS(URj*iIGC`1wa->xxe&t8+`H*CazH9s%Cc8*X+xo1`i9W>YGO|*n@WmtGAGAD+&msXZv>8j-FPPx5m zzO>e!%kmN>F2g})O-9$w&R)~%7p&JmS+#$ytbKiLb>3uf!;{n3)@N$}oALj|m($h7 z*EH!B=i{&DrJn2x~1;&Pb5SiO4Ie2vvJZp%D3=C8Fcr(a%^l4sEz@!{+F>8Dp3 zCgXkDj7PLy#gaJ|#7kBME7E>VXB?U=2tIi;L`m zuU?ZwkkSF>cO3Uy`t%bG9@>w${lQ4*l_w|Rkn?2Fz8iN2?UNJb+M!tgcF*%F?epfi zJEEX}dS#8;!@8Y)kT^?)C)e#K>r=l%zY~@v{KVv5e@sv^WO^bNJ%-#z%K%7~=EssV zSf`?yta7!vn{cVk+;Zz+R%_L0HqR=SO&L`xr>#O66?ZtUP^H;Cs~F7@Rfx}4;DX^M zvPDDRvqET<=3$0n)onBkq9(}NtT^YEP7TCV8vb>@gn)%dX*Oq0Vd z<@l3la_nPS{8|RWap1uvWlvJEaD&slP@+f6o;kTw@l2Lgi)Vl;kI%8&g7NoT0|H{9 z^GSxPw8n!0hYMT%R%_@MElN~Bhh}M-*-cfut&kh$7W_syBD>7RH3>!X}lixjc=+X41MB%;|_A{46(Ik9VoaQ-H36qU zmGhEqg8MBygFad?(kLekxfFhv_1oq!*)sH?oUKM}WBcTAZ;R*ky^ZR2W&h-0qh8(G z*sg}`Y-{Uey|J~`INI2*g}j}^d~2hatr>E&?aE2@=RtLEJKLJAa*)+#v(~d8jlGS7 zINag(OvYaI;HX+X2qW(wWCw@)Cx<(gEHw#vmFiY?HqU2PuU0lP+H5tlO6aF(Z2ze4 z?PmuYjX3{$bz3PqcXrsEsT0$IJ>}8~M<9EKN4q~Z4q(E`;XeQD>{Zu8KYP{M#{R)x zdF1Rzc92oCJgFRBPo=Z%ZS_{p+u3WZZ*0N2a%N(EDz)iMku$Tz`BtOYEYD>&LsKZv z`(&fO)7Xn^5*VKqMdNTgW)|PF?OOF@C)?jYYV1X}_q%5i30>g(38GJ%!}g&o!MNM? zrxwVdW9VjAiZmYeg_9g_^6#l9+C6E};oe4BBL?l;ZnGs#Hx1_ZR&LGyXuts_4^nrw zq(R{dIKBmW+u1$vtDf1)rDDKl^G3t!^qrq|ekzXC&D&e_p1jL;6ZKc6=6H1ZEu{dV z%f2d{_RpkpOr|)%K*C{Dke{mV=*% z{y+m}(7`o`-*x~@Iv!9@_bBT>IPHPuhWP$u!GgT{~HEo88tgM*m(#BHBZsrO{H1y ztQxK@Sl&>3*WI{1cuERlvQO?+-}Yi|rghGriYaA`ekQeyEEj;;TnRu3D29qlT7HE~ zr&eT1i?7Yy*2uy(8)uqOr?-bPKOOYFy78lPHazgH)}8L@o?N+f^QEqfFL78ClZgsr zfN?R@49ZHQz9SP!N@cdvI`EKK;nKgsHPV4Lcg=N4Qq`ByJDuCv8`~q6SF zF`G@wkdU+L$9C*pJaP*(Y7`>dh)zZFL$Qg=*jb%k15T9m^T@11wl}N?F+u`3YV7qvvXYthO=J@&@gj{=H}VqvZk}-SJu5oxzx}k|~*x zgBT=4-L`LTM^6V@Mdx#Sn5;!q)nx0wGwhsp1JCE>q!tLPuS^ld{U)p-{QKd(*pf>3 z!bV#{^7~HvA>?+)!^?VeaBYHt)8xI{*rn8D+|uo^AybJUqvr^+dhQIjx%t3@EgrdDSyBd4~_(>PW1KIF*_Z{8uJPFZ0#dY1zkW@7W z*_rw|>6(w%99)bAzUqve3v+$QRNCZLRoxwE4hAIf{A6fgBW?JT9AE1m&Ql<{DQz^( zv$O5EA_*my-^q{LxG@MFwY#!Dp63XSmfwvX^E}b(Z=4;PAw-L*L}YPV50;&Qol;-I zvol{p@}TOVKSO0{{ivb4+p5?KNN3s=9d$<$Y^}nB1f`zf%l33n!?rPcCKvDLrZcpc z4J02Uv!gorQ4AW4o|CfAb;A}KXhKPd*&TIksjLod%E5b*fRBj6r6plLIKQVr06$SO z6F0cLDP#0W7li1X?d_x!Dz;C0V=Z@Vqio3Il>ydSGLmF9^`_j*rv8P?{Ofy@RplQf zzWOK^(+BEtl`l?rY<9IMX|uPP5shix?wte!(!|;KopJBF*MA7Sa$?jaLNzUHtVU^V zTHSVYP)ft3^>80ogd)F_Nwi0Mextw)EQo4@?y5zjiroMXiLHbqlmyl0sTw?E9(UYM z{sFYm{+|C~%*3ozqJ%&ChtrA#OMw~$vFvIwlpVM1TlXyvbug}U_`U{Ynii_ z9p&5xw#XH+536l&8SwOI0Tt|P*<2S$K$kEUz?wfDG%vP2L}q;l|4acf%qhLF;|;PA zHVfCvwUDkIM0sFSiOv??bPIe?v66RwLTZ_m`(!+{S|t%T0}Wd`fu?4)^loPTm)@Z$ z29jPpAB&f!*MeTAjQcPx^{_lUfWvrNM#`<}se*g9;$;$1850jT>>{aF&1kgf7*SZ} z8bklG9Yzn=0tCs6y$!{)L(lN!sXtCBmo4)FO`q+FQu$D+QrosFFq&|uHYb@lT-r}i zCI+2=7Zh0t%yq!K9^VQ_<*ZXGE8`?G7j#dr&rrt8Ox@{c=04<&`Ly2G9t2`Mh8ANc~%gcJ}a1Hl!CF(YnKW!k0}>2Ss?f1vfUNl z6QF2MqPb{^YP52X{0ruI_H`=k(j<@!?FkMCdR4!8Q+G5A?%868KY#n)L{(-@6I2BFcN^^T&jO_ z(mZJm?@vNNCJMe+HQrA3auNf#3@sYG5Q8&lO57DgI&OahrQ1lV0Mx~G2+?YJEOypK@wAr3+>17GDRcjZ<5S=Gh}771bb<$S9;VTnV-Co8C(&o4*10CrN=xE%sEoSl* zs)A3U$j3;7$F5R_myb^+9v)OcHYW*qdWL-q5h+{GI@5_%+k2yZ545tG4P(AUdg2)i zDhMCP!jo?QtU0uElhzpC+#G~cGy`E7sfGfIHP|s#Fi3bTY$I5z0f`ga$T~i)bcRi04Z*(8XAM@W%VhUAYbV|CP1LG;0Vd2p9Zd)Q1fT z$gcZKvDBd?B*cKpXrT)~S{&M8K>4Ln>f$3#-WwI4?X7I}q8$+{HoOcvCugIF#Vf;2 zHG{LHtx)o*TtZ5NowV`EBs=27z*eX|@`G}!LAowd90Vx$(;4#5`YnrPgeqo-_;bN# zYYQz{#qXB1$48SC9nRuXm7kZrX&oYhC;fPgyJBzJ#ou@q< z0lAZSgWXj?*7}jV5QVQ{C&~vYQ-?L#DCXM$203a(3ZN4v8q54q92@ob9GE8c+)#5r0@st)(O-%tal*iy z-Y7pl8nrS8JVa?v%PODxvH%&#*uKP^$4fjK{kW-Q!cS6n7`o;hw1&f~_B-F(g4;)$ zF3K*QpT`xKoo*1P$`eLXN86=N6|D=&%BX+H$=yI+o;sD}@(VEP@K7ro=^|?<9HajT zwE}B^|{O4_2)A?Mdrl&ILjZGbh`s%a)w;wzitQP-M;60>aDnsyRui zP)g$88zCW_h*w~?oA>E)W}d3H9_KXY2F^wxbM{t^wv*WBP5+dTOom;2 AdP@*Lu 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