Merge branch 'bugfix/mrf-reject-logging' into 'develop'
authorlain <lain@soykaf.club>
Thu, 23 Jul 2020 11:08:29 +0000 (11:08 +0000)
committerlain <lain@soykaf.club>
Thu, 23 Jul 2020 11:08:29 +0000 (11:08 +0000)
Fix #783: Make MRF reject log as info level instead of error

Closes #783

See merge request pleroma/pleroma!2758

1  2 
lib/pleroma/web/activity_pub/transmogrifier.ex
test/web/activity_pub/transmogrifier_test.exs

index f37bcab3e752493f090c671ef2955ed3ae2159c3,168422c9379fc82a5dd1d922bec851c472314eb4..35aa05eb5a1025bfd725dd5d11f7acd739d19c5f
@@@ -62,17 -62,15 +62,17 @@@ defmodule Pleroma.Web.ActivityPub.Trans
    def fix_summary(object), do: Map.put(object, "summary", "")
  
    def fix_addressing_list(map, field) do
 +    addrs = map[field]
 +
      cond do
 -      is_binary(map[field]) ->
 -        Map.put(map, field, [map[field]])
 +      is_list(addrs) ->
 +        Map.put(map, field, Enum.filter(addrs, &is_binary/1))
  
 -      is_nil(map[field]) ->
 -        Map.put(map, field, [])
 +      is_binary(addrs) ->
 +        Map.put(map, field, [addrs])
  
        true ->
 -        map
 +        Map.put(map, field, [])
      end
    end
  
          |> Map.drop(["conversation"])
        else
          e ->
-           Logger.error("Couldn't fetch #{inspect(in_reply_to_id)}, error: #{inspect(e)}")
+           Logger.warn("Couldn't fetch #{inspect(in_reply_to_id)}, error: #{inspect(e)}")
            object
        end
      else
index 248b410c641cebb290746f5279d932922102a3a3,fd8e7f24f8f472deec09a3f27da3dddff783e3e7..a18fdaac012b52ee74ee63ddc9d117cbb7f7b745
@@@ -160,7 -160,7 +160,7 @@@ defmodule Pleroma.Web.ActivityPub.Trans
  
        assert capture_log(fn ->
                 {:ok, _returned_activity} = Transmogrifier.handle_incoming(data)
-              end) =~ "[error] Couldn't fetch \"https://404.site/whatever\", error: nil"
+              end) =~ "[warn] Couldn't fetch \"https://404.site/whatever\", error: nil"
      end
  
      test "it works for incoming notices" do
        assert [user.follower_address] == activity.data["to"]
      end
  
 +    test "it correctly processes messages with weirdness in address fields" do
 +      user = insert(:user)
 +
 +      message = %{
 +        "@context" => "https://www.w3.org/ns/activitystreams",
 +        "to" => [nil, user.follower_address],
 +        "cc" => ["https://www.w3.org/ns/activitystreams#Public", ["¿"]],
 +        "type" => "Create",
 +        "object" => %{
 +          "content" => "…",
 +          "type" => "Note",
 +          "attributedTo" => user.ap_id,
 +          "inReplyTo" => nil
 +        },
 +        "actor" => user.ap_id
 +      }
 +
 +      assert {:ok, activity} = Transmogrifier.handle_incoming(message)
 +
 +      assert ["https://www.w3.org/ns/activitystreams#Public"] == activity.data["cc"]
 +      assert [user.follower_address] == activity.data["to"]
 +    end
 +
      test "it accepts Move activities" do
        old_user = insert(:user)
        new_user = insert(:user)