From 08d5ad71b68e44334911c63aada418fab2c17df2 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Sun, 7 Oct 2018 01:23:38 +0000 Subject: [PATCH] nodeinfo: allow opting out of MRF transparency --- config/config.exs | 3 +- .../web/nodeinfo/nodeinfo_controller.ex | 30 +++++++++++-------- 2 files changed, 19 insertions(+), 14 deletions(-) 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) } } -- 2.45.2