From 2bc924ba451b1a324663133632093914192cec2d Mon Sep 17 00:00:00 2001 From: href Date: Tue, 6 Nov 2018 11:34:34 +0100 Subject: [PATCH] Get rid of Pleroma.Config in favor of Application Discussed in https://git.pleroma.social/pleroma/pleroma/merge_requests/426#note_7232 --- lib/pleroma/application.ex | 1 - lib/pleroma/config.ex | 15 --------------- .../web/activity_pub/activity_pub_controller.ex | 3 +-- lib/pleroma/web/federator/federator.ex | 3 +-- test/config_test.exs | 10 ---------- .../activity_pub_controller_test.exs | 16 ++++++++++++---- test/web/federator_test.exs | 15 +++++++++++---- 7 files changed, 25 insertions(+), 38 deletions(-) delete mode 100644 lib/pleroma/config.ex delete mode 100644 test/config_test.exs diff --git a/lib/pleroma/application.ex b/lib/pleroma/application.ex index d4bc8f63d..eedad7675 100644 --- a/lib/pleroma/application.ex +++ b/lib/pleroma/application.ex @@ -10,7 +10,6 @@ def start(_type, _args) do # Define workers and child supervisors to be supervised children = [ - worker(Pleroma.Config, [Application.get_all_env(:pleroma)]), # Start the Ecto repository supervisor(Pleroma.Repo, []), worker(Pleroma.Emoji, []), diff --git a/lib/pleroma/config.ex b/lib/pleroma/config.ex deleted file mode 100644 index 510d8d498..000000000 --- a/lib/pleroma/config.ex +++ /dev/null @@ -1,15 +0,0 @@ -defmodule Pleroma.Config do - use Agent - - def start_link(initial) do - Agent.start_link(fn -> initial end, name: __MODULE__) - end - - def get(path) do - Agent.get(__MODULE__, Kernel, :get_in, [path]) - end - - def put(path, value) do - Agent.update(__MODULE__, Kernel, :put_in, [path, value]) - end -end diff --git a/lib/pleroma/web/activity_pub/activity_pub_controller.ex b/lib/pleroma/web/activity_pub/activity_pub_controller.ex index 531e98237..47937beef 100644 --- a/lib/pleroma/web/activity_pub/activity_pub_controller.ex +++ b/lib/pleroma/web/activity_pub/activity_pub_controller.ex @@ -6,7 +6,6 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubController do alias Pleroma.Web.ActivityPub.Relay alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.Federator - alias Pleroma.Config require Logger @@ -15,7 +14,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubController do plug(:relay_active? when action in [:relay]) def relay_active?(conn, _) do - if Config.get([:instance, :allow_relay]) do + if Keyword.get(Application.get_env(:pleroma, :instance), :allow_relay) do conn else conn diff --git a/lib/pleroma/web/federator/federator.ex b/lib/pleroma/web/federator/federator.ex index 9ea2507a1..01c2c89c3 100644 --- a/lib/pleroma/web/federator/federator.ex +++ b/lib/pleroma/web/federator/federator.ex @@ -7,7 +7,6 @@ defmodule Pleroma.Web.Federator do alias Pleroma.Web.ActivityPub.Relay alias Pleroma.Web.ActivityPub.Transmogrifier alias Pleroma.Web.ActivityPub.Utils - alias Pleroma.Config require Logger @websub Application.get_env(:pleroma, :websub) @@ -72,7 +71,7 @@ def handle(:publish, activity) do Logger.info(fn -> "Sending #{activity.data["id"]} out via Salmon" end) Pleroma.Web.Salmon.publish(actor, activity) - if Config.get([:instance, :allow_relay]) do + if Keyword.get(Application.get_env(:pleroma, :instance), :allow_relay) do Logger.info(fn -> "Relaying #{activity.data["id"]} out" end) Relay.publish(activity) end diff --git a/test/config_test.exs b/test/config_test.exs deleted file mode 100644 index 6d0f0a2d4..000000000 --- a/test/config_test.exs +++ /dev/null @@ -1,10 +0,0 @@ -defmodule Pleroma.ConfigTest do - use Pleroma.DataCase - alias Pleroma.Config - - test "get returns the item at the path if there is one" do - Config.put([:instance, :name], "Plemora") - assert Config.get([:instance, :name]) == "Plemora" - assert Config.get([:unknown]) == nil - end -end diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs index 5b46bbe76..524ed9eaa 100644 --- a/test/web/activity_pub/activity_pub_controller_test.exs +++ b/test/web/activity_pub/activity_pub_controller_test.exs @@ -4,12 +4,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do alias Pleroma.Web.ActivityPub.{UserView, ObjectView} alias Pleroma.{Repo, User} alias Pleroma.Activity - alias Pleroma.Config describe "/relay" do test "with the relay active, it returns the relay user", %{conn: conn} do - Config.put([:instance, :allow_relay], true) - res = conn |> get(activity_pub_path(conn, :relay)) @@ -19,12 +16,23 @@ test "with the relay active, it returns the relay user", %{conn: conn} do end test "with the relay disabled, it returns 404", %{conn: conn} do - Config.put([:instance, :allow_relay], false) + instance = + Application.get_env(:pleroma, :instance) + |> Keyword.put(:allow_relay, false) + + Application.put_env(:pleroma, :instance, instance) res = conn |> get(activity_pub_path(conn, :relay)) |> json_response(404) + + instance = + Application.get_env(:pleroma, :instance) + |> Keyword.put(:allow_relay, true) + + Application.put_env(:pleroma, :instance, instance) + end end diff --git a/test/web/federator_test.exs b/test/web/federator_test.exs index 966702935..88aef0d0f 100644 --- a/test/web/federator_test.exs +++ b/test/web/federator_test.exs @@ -1,7 +1,6 @@ defmodule Pleroma.Web.FederatorTest do alias Pleroma.Web.Federator alias Pleroma.Web.CommonAPI - alias Pleroma.Config use Pleroma.DataCase import Pleroma.Factory import Mock @@ -40,8 +39,6 @@ test "with relays active, it publishes to the relay", %{ activity: activity, relay_mock: relay_mock } do - Config.put([:instance, :allow_relay], true) - with_mocks([relay_mock]) do Federator.handle(:publish, activity) end @@ -53,13 +50,23 @@ test "with relays deactivated, it does not publish to the relay", %{ activity: activity, relay_mock: relay_mock } do - Config.put([:instance, :allow_relay], false) + instance = + Application.get_env(:pleroma, :instance) + |> Keyword.put(:allow_relay, false) + + Application.put_env(:pleroma, :instance, instance) with_mocks([relay_mock]) do Federator.handle(:publish, activity) end refute_received :relay_publish + + instance = + Application.get_env(:pleroma, :instance) + |> Keyword.put(:allow_relay, true) + + Application.put_env(:pleroma, :instance, instance) end end end