Browse Source

Merge branch '1113-op-mentioning' into 'develop'

CommonAPI: Change public->private implicit addressing.

Closes #1113

See merge request pleroma/pleroma!2563
revert-6dd1575c
Haelwenn 4 years ago
parent
commit
a57e7f3503
3 changed files with 38 additions and 3 deletions
  1. +2
    -1
      lib/pleroma/web/common_api/utils.ex
  2. +26
    -0
      test/web/common_api/common_api_test.exs
  3. +10
    -2
      test/web/common_api/common_api_utils_test.exs

+ 2
- 1
lib/pleroma/web/common_api/utils.ex View File

@@ -102,7 +102,8 @@ defmodule Pleroma.Web.CommonAPI.Utils do
end

def get_to_and_cc(_user, mentioned_users, inReplyTo, "direct", _) do
if inReplyTo do
# If the OP is a DM already, add the implicit actor.
if inReplyTo && Visibility.is_direct?(inReplyTo) do
{Enum.uniq([inReplyTo.data["actor"] | mentioned_users]), []}
else
{mentioned_users, []}


+ 26
- 0
test/web/common_api/common_api_test.exs View File

@@ -335,6 +335,32 @@ defmodule Pleroma.Web.CommonAPITest do
end)
end

test "replying with a direct message will NOT auto-add the author of the reply to the recipient list" do
user = insert(:user)
other_user = insert(:user)
third_user = insert(:user)

{:ok, post} = CommonAPI.post(user, %{status: "I'm stupid"})

{:ok, open_answer} =
CommonAPI.post(other_user, %{status: "No ur smart", in_reply_to_status_id: post.id})

# The OP is implicitly added
assert user.ap_id in open_answer.recipients

{:ok, secret_answer} =
CommonAPI.post(other_user, %{
status: "lol, that guy really is stupid, right, @#{third_user.nickname}?",
in_reply_to_status_id: post.id,
visibility: "direct"
})

assert third_user.ap_id in secret_answer.recipients

# The OP is not added
refute user.ap_id in secret_answer.recipients
end

test "it allows to address a list" do
user = insert(:user)
{:ok, list} = Pleroma.List.create("foo", user)


+ 10
- 2
test/web/common_api/common_api_utils_test.exs View File

@@ -297,11 +297,10 @@ defmodule Pleroma.Web.CommonAPI.UtilsTest do

{to, cc} = Utils.get_to_and_cc(user, mentions, activity, "private", nil)

assert length(to) == 3
assert length(to) == 2
assert Enum.empty?(cc)

assert mentioned_user.ap_id in to
assert third_user.ap_id in to
assert user.follower_address in to
end

@@ -327,6 +326,15 @@ defmodule Pleroma.Web.CommonAPI.UtilsTest do

{to, cc} = Utils.get_to_and_cc(user, mentions, activity, "direct", nil)

assert length(to) == 1
assert Enum.empty?(cc)

assert mentioned_user.ap_id in to

{:ok, direct_activity} = CommonAPI.post(third_user, %{status: "uguu", visibility: "direct"})

{to, cc} = Utils.get_to_and_cc(user, mentions, direct_activity, "direct", nil)

assert length(to) == 2
assert Enum.empty?(cc)



Loading…
Cancel
Save