From: William Pitcock Date: Sun, 7 Oct 2018 01:23:38 +0000 (+0000) Subject: nodeinfo: allow opting out of MRF transparency X-Git-Url: https://git.squeep.com/?a=commitdiff_plain;h=08d5ad71b68e44334911c63aada418fab2c17df2;p=akkoma nodeinfo: allow opting out of MRF transparency --- diff --git a/config/config.exs b/config/config.exs index c32ac9da2..320296991 100644 --- a/config/config.exs +++ b/config/config.exs @@ -79,7 +79,8 @@ config :pleroma, :instance, "text/plain", "text/html", "text/markdown" - ] + ], + mrf_transparency: true config :pleroma, :markup, # XXX - unfortunately, inline images must be enabled by default right now, because diff --git a/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex b/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex index a14000c61..c40bf1656 100644 --- a/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex +++ b/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex @@ -4,6 +4,7 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do alias Pleroma.Stats alias Pleroma.Web alias Pleroma.{User, Repo} + alias Pleroma.Web.ActivityPub.MRF def schemas(conn, _params) do response = %{ @@ -31,15 +32,9 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do Application.get_env(:pleroma, :mrf_simple) |> Enum.into(%{}) - mrf_policies = Keyword.get(instance, :rewrite_policy) - mrf_policies = - if(is_list(mrf_policies)) do - mrf_policies - |> Enum.map(fn policy -> to_string(policy) |> String.split(".") |> List.last() end) - else - [to_string(mrf_policies) |> String.split(".") |> List.last()] - end + MRF.get_policies() + |> Enum.map(fn policy -> to_string(policy) |> String.split(".") |> List.last() end) quarantined = Keyword.get(instance, :quarantined_instances) @@ -55,6 +50,19 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do |> Repo.all() |> 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 = %{ version: "2.0", software: %{ @@ -88,11 +96,7 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do staffAccounts: staff_accounts, chat: Keyword.get(chat, :enabled), gopher: Keyword.get(gopher, :enabled), - federation: %{ - mrf_policies: mrf_policies, - mrf_simple: mrf_simple, - quarantined_instances: quarantined - }, + federation: federation_response, postFormats: Keyword.get(instance, :allowed_post_formats) } }