logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: 5294b11ef092df386b29896e47795edac8364f20
parent: 4a3a46074d924f6cd61d06995298caa00184ff18
Author: Haelwenn <git.pleroma.social@hacktivis.me>
Date:   Sun,  7 Oct 2018 01:34:16 +0000

Merge branch 'feature/mrf-transparency-opt-out' into 'develop'

nodeinfo: allow opting out of MRF transparency

See merge request pleroma/pleroma!370

Diffstat:

Mconfig/config.exs3++-
Mlib/pleroma/web/nodeinfo/nodeinfo_controller.ex30+++++++++++++++++-------------
2 files changed, 19 insertions(+), 14 deletions(-)

diff --git 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 @@ -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) } }