nodeinfo: allow opting out of MRF transparency
This commit is contained in:
parent
4a3a46074d
commit
08d5ad71b6
|
@ -79,7 +79,8 @@
|
||||||
"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
|
||||||
|
|
|
@ -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 @@ def nodeinfo(conn, %{"version" => "2.0"}) 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 @@ def nodeinfo(conn, %{"version" => "2.0"}) 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 @@ def nodeinfo(conn, %{"version" => "2.0"}) 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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue