Просмотр исходного кода

Remove use of atoms in MRF.UserAllowListPolicy

namespace-move-notification
href rinpatch 4 лет назад
Родитель
Сommit
cb7be6eef2
5 измененных файлов: 33 добавлений и 11 удалений
  1. +2
    -4
      config/description.exs
  2. +3
    -2
      docs/configuration/cheatsheet.md
  3. +24
    -1
      lib/pleroma/config/deprecation_warnings.ex
  4. +1
    -1
      lib/pleroma/web/activity_pub/mrf/user_allow_list_policy.ex
  5. +3
    -3
      test/web/activity_pub/mrf/user_allowlist_policy_test.exs

+ 2
- 4
config/description.exs Просмотреть файл

@@ -1623,14 +1623,12 @@ config :pleroma, :config_description, [
# %{
# group: :pleroma,
# key: :mrf_user_allowlist,
# type: :group,
# type: :map,
# description:
# "The keys in this section are the domain names that the policy should apply to." <>
# " Each key should be assigned a list of users that should be allowed through by their ActivityPub ID",
# children: [
# ["example.org": ["https://example.org/users/admin"]],
# suggestions: [
# ["example.org": ["https://example.org/users/admin"]]
# %{"example.org" => ["https://example.org/users/admin"]}
# ]
# ]
# },


+ 3
- 2
docs/configuration/cheatsheet.md Просмотреть файл

@@ -138,8 +138,9 @@ their ActivityPub ID.
An example:

```elixir
config :pleroma, :mrf_user_allowlist,
"example.org": ["https://example.org/users/admin"]
config :pleroma, :mrf_user_allowlist, %{
"example.org" => ["https://example.org/users/admin"]
}
```

#### :mrf_object_age


+ 24
- 1
lib/pleroma/config/deprecation_warnings.ex Просмотреть файл

@@ -4,9 +4,10 @@

defmodule Pleroma.Config.DeprecationWarnings do
require Logger
alias Pleroma.Config

def check_hellthread_threshold do
if Pleroma.Config.get([:mrf_hellthread, :threshold]) do
if Config.get([:mrf_hellthread, :threshold]) do
Logger.warn("""
!!!DEPRECATION WARNING!!!
You are using the old configuration mechanism for the hellthread filter. Please check config.md.
@@ -14,7 +15,29 @@ defmodule Pleroma.Config.DeprecationWarnings do
end
end

def mrf_user_allowlist do
config = Config.get(:mrf_user_allowlist)

if config && Enum.any?(config, fn {k, _} -> is_atom(k) end) do
rewritten =
Enum.reduce(Config.get(:mrf_user_allowlist), Map.new(), fn {k, v}, acc ->
Map.put(acc, to_string(k), v)
end)

Config.put(:mrf_user_allowlist, rewritten)

Logger.error("""
!!!DEPRECATION WARNING!!!
As of Pleroma 2.0.7, the `mrf_user_allowlist` setting changed of format.
Pleroma 2.1 will remove support for the old format. Please change your configuration to match this:

config :pleroma, :mrf_user_allowlist, #{inspect(rewritten, pretty: true)}
""")
end
end

def warn do
check_hellthread_threshold()
mrf_user_allowlist()
end
end

+ 1
- 1
lib/pleroma/web/activity_pub/mrf/user_allow_list_policy.ex Просмотреть файл

@@ -24,7 +24,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.UserAllowListPolicy do

allow_list =
Config.get(
[:mrf_user_allowlist, String.to_atom(actor_info.host)],
[:mrf_user_allowlist, actor_info.host],
[]
)



+ 3
- 3
test/web/activity_pub/mrf/user_allowlist_policy_test.exs Просмотреть файл

@@ -7,7 +7,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.UserAllowListPolicyTest do

alias Pleroma.Web.ActivityPub.MRF.UserAllowListPolicy

setup do: clear_config([:mrf_user_allowlist, :localhost])
setup do: clear_config(:mrf_user_allowlist)

test "pass filter if allow list is empty" do
actor = insert(:user)
@@ -17,14 +17,14 @@ defmodule Pleroma.Web.ActivityPub.MRF.UserAllowListPolicyTest do

test "pass filter if allow list isn't empty and user in allow list" do
actor = insert(:user)
Pleroma.Config.put([:mrf_user_allowlist, :localhost], [actor.ap_id, "test-ap-id"])
Pleroma.Config.put([:mrf_user_allowlist], %{"localhost" => [actor.ap_id, "test-ap-id"]})
message = %{"actor" => actor.ap_id}
assert UserAllowListPolicy.filter(message) == {:ok, message}
end

test "rejected if allow list isn't empty and user not in allow list" do
actor = insert(:user)
Pleroma.Config.put([:mrf_user_allowlist, :localhost], ["test-ap-id"])
Pleroma.Config.put([:mrf_user_allowlist], %{"localhost" => ["test-ap-id"]})
message = %{"actor" => actor.ap_id}
assert UserAllowListPolicy.filter(message) == {:reject, nil}
end


Загрузка…
Отмена
Сохранить