X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Factivity_pub%2Fmrf.ex;h=1aaa2005051857a1584c755d8ebb1b39fc59949c;hb=0f2f7d2cec8297b1b5645643d7584cde561ce628;hp=6d5aa9515b91ee6cc79e3a5c059142aa604b9cd1;hpb=e9e6f37bda2620147a18eb0edb472a1aec46e8f9;p=akkoma diff --git a/lib/pleroma/web/activity_pub/mrf.ex b/lib/pleroma/web/activity_pub/mrf.ex index 6d5aa9515..1aaa20050 100644 --- a/lib/pleroma/web/activity_pub/mrf.ex +++ b/lib/pleroma/web/activity_pub/mrf.ex @@ -1,21 +1,28 @@ -defmodule Pleroma.Web.ActivityPub.MRF do +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only - @callback filter(Map.t) :: {:ok | :reject, Map.t} +defmodule Pleroma.Web.ActivityPub.MRF do + @callback filter(Map.t()) :: {:ok | :reject, Map.t()} def filter(object) do get_policies() |> Enum.reduce({:ok, object}, fn - (policy, {:ok, object}) -> + policy, {:ok, object} -> policy.filter(object) - (_, error) -> error + + _, error -> + error end) end - def get_policies() do + def get_policies do Application.get_env(:pleroma, :instance, []) |> Keyword.get(:rewrite_policy, []) |> get_policies() end - def get_policies(policy) when is_atom(policy), do: [policy] - def get_policies(policies) when is_list(policies), do: policies + + defp get_policies(policy) when is_atom(policy), do: [policy] + defp get_policies(policies) when is_list(policies), do: policies + defp get_policies(_), do: [] end