nodeinfo: allow opting out of MRF transparency

This commit is contained in:
William Pitcock 2018-10-07 01:23:38 +00:00
parent 4a3a46074d
commit 08d5ad71b6
2 changed files with 19 additions and 14 deletions

View File

@ -79,7 +79,8 @@ config :pleroma, :instance,
"text/plain", "text/plain",
"text/html", "text/html",
"text/markdown" "text/markdown"
] ],
mrf_transparency: true
config :pleroma, :markup, config :pleroma, :markup,
# XXX - unfortunately, inline images must be enabled by default right now, because # XXX - unfortunately, inline images must be enabled by default right now, because

View File

@ -4,6 +4,7 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
alias Pleroma.Stats alias Pleroma.Stats
alias Pleroma.Web alias Pleroma.Web
alias Pleroma.{User, Repo} alias Pleroma.{User, Repo}
alias Pleroma.Web.ActivityPub.MRF
def schemas(conn, _params) do def schemas(conn, _params) do
response = %{ response = %{
@ -31,15 +32,9 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
Application.get_env(:pleroma, :mrf_simple) Application.get_env(:pleroma, :mrf_simple)
|> Enum.into(%{}) |> Enum.into(%{})
mrf_policies = Keyword.get(instance, :rewrite_policy)
mrf_policies = mrf_policies =
if(is_list(mrf_policies)) do MRF.get_policies()
mrf_policies
|> Enum.map(fn policy -> to_string(policy) |> String.split(".") |> List.last() end) |> Enum.map(fn policy -> to_string(policy) |> String.split(".") |> List.last() end)
else
[to_string(mrf_policies) |> String.split(".") |> List.last()]
end
quarantined = Keyword.get(instance, :quarantined_instances) quarantined = Keyword.get(instance, :quarantined_instances)
@ -55,6 +50,19 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
|> Repo.all() |> Repo.all()
|> Enum.map(fn u -> u.ap_id end) |> Enum.map(fn u -> u.ap_id end)
mrf_transparency = Keyword.get(instance, :mrf_transparency)
federation_response =
if mrf_transparency do
%{
mrf_policies: mrf_policies,
mrf_simple: mrf_simple,
quarantined_instances: quarantined
}
else
%{}
end
response = %{ response = %{
version: "2.0", version: "2.0",
software: %{ software: %{
@ -88,11 +96,7 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
staffAccounts: staff_accounts, staffAccounts: staff_accounts,
chat: Keyword.get(chat, :enabled), chat: Keyword.get(chat, :enabled),
gopher: Keyword.get(gopher, :enabled), gopher: Keyword.get(gopher, :enabled),
federation: %{ federation: federation_response,
mrf_policies: mrf_policies,
mrf_simple: mrf_simple,
quarantined_instances: quarantined
},
postFormats: Keyword.get(instance, :allowed_post_formats) postFormats: Keyword.get(instance, :allowed_post_formats)
} }
} }