Browse Source

mrf: simple policy: fix matching imported activitypub and ostatus statuses

tags/v1.1.4
William Pitcock 5 years ago
parent
commit
79503ce90f
3 changed files with 20 additions and 2 deletions
  1. +1
    -0
      CHANGELOG.md
  2. +1
    -2
      lib/pleroma/web/activity_pub/mrf/simple_policy.ex
  3. +18
    -0
      test/web/activity_pub/mrf/simple_policy_test.exs

+ 1
- 0
CHANGELOG.md View File

@@ -113,6 +113,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Mastodon API: Exposing default scope of the user to anyone
- Mastodon API: Make `irreversible` field default to `false` [`POST /api/v1/filters`]
- User-Agent is now sent correctly for all HTTP requests.
- MRF: Simple policy now properly delists imported or relayed statuses

## Removed
- Configuration: `config :pleroma, :fe` in favor of the more flexible `config :pleroma, :frontend_configurations`


+ 1
- 2
lib/pleroma/web/activity_pub/mrf/simple_policy.ex View File

@@ -74,8 +74,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do
actor_host
),
user <- User.get_cached_by_ap_id(object["actor"]),
true <- "https://www.w3.org/ns/activitystreams#Public" in object["to"],
true <- user.follower_address in object["cc"] do
true <- "https://www.w3.org/ns/activitystreams#Public" in object["to"] do
to =
List.delete(object["to"], "https://www.w3.org/ns/activitystreams#Public") ++
[user.follower_address]


+ 18
- 0
test/web/activity_pub/mrf/simple_policy_test.exs View File

@@ -145,6 +145,24 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicyTest do

assert SimplePolicy.filter(local_message) == {:ok, local_message}
end

test "has a matching host but only as:Public in to" do
{_actor, ftl_message} = build_ftl_actor_and_message()

ftl_message_actor_host =
ftl_message
|> Map.fetch!("actor")
|> URI.parse()
|> Map.fetch!(:host)

ftl_message = Map.put(ftl_message, "cc", [])

Config.put([:mrf_simple, :federated_timeline_removal], [ftl_message_actor_host])

assert {:ok, ftl_message} = SimplePolicy.filter(ftl_message)
refute "https://www.w3.org/ns/activitystreams#Public" in ftl_message["to"]
assert "https://www.w3.org/ns/activitystreams#Public" in ftl_message["cc"]
end
end

defp build_ftl_actor_and_message do


Loading…
Cancel
Save