aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2019-01-23 12:40:57 +0100
committerlain <lain@soykaf.club>2019-01-23 12:40:57 +0100
commite221c681dcd387aa445c35957a32fdc0189a0955 (patch)
treed5f29f97c37983ac5cc9823df6a64882772aec14
parentb624b7a150c813722c4ffe82112c03e246fb5760 (diff)
downloadpleroma-e221c681dcd387aa445c35957a32fdc0189a0955.tar.gz
New frontend configuration mechanism.
-rw-r--r--config/config.exs19
-rw-r--r--docs/config.md17
-rw-r--r--lib/pleroma/web/router.ex1
-rw-r--r--lib/pleroma/web/twitter_api/controllers/util_controller.ex8
-rw-r--r--test/web/twitter_api/util_controller_test.exs23
5 files changed, 68 insertions, 0 deletions
diff --git a/config/config.exs b/config/config.exs
index d30b0aad0..7f63a0a39 100644
--- a/config/config.exs
+++ b/config/config.exs
@@ -154,6 +154,7 @@ config :pleroma, :markup,
Pleroma.HTML.Scrubber.Default
]
+# Deprecated, will be gone in 1.0
config :pleroma, :fe,
theme: "pleroma-dark",
logo: "/static/logo.png",
@@ -172,6 +173,24 @@ config :pleroma, :fe,
subject_line_behavior: "email",
always_show_subject_input: true
+config :pleroma, :frontend_configurations,
+ pleroma_fe: %{
+ theme: "pleroma-dark",
+ logo: "/static/logo.png",
+ background: "/static/aurora_borealis.jpg",
+ redirectRootNoLogin: "/main/all",
+ redirectRootLogin: "/main/friends",
+ showInstanceSpecificPanel: true,
+ scopeOptionsEnabled: false,
+ formattingOptionsEnabled: false,
+ collapseMessageWithSubject: false,
+ hidePostStats: false,
+ hideUserStats: false,
+ scopeCopy: true,
+ subjectLineBehavior: "email",
+ alwaysShowSubjectInput: true
+ }
+
config :pleroma, :activitypub,
accept_blocks: true,
unfollow_blocked: true,
diff --git a/docs/config.md b/docs/config.md
index 6bf7b9ea7..ff4a1012c 100644
--- a/docs/config.md
+++ b/docs/config.md
@@ -101,7 +101,24 @@ config :pleroma, Pleroma.Mailer,
* `backends`: `:console` is used to send logs to stdout, `{ExSyslogger, :ex_syslogger}` to log to syslog
See: [logger’s documentation](https://hexdocs.pm/logger/Logger.html) and [ex_syslogger’s documentation](https://hexdocs.pm/ex_syslogger/)
+
+## :frontend_configurations
+
+This can be used to configure a keyword list that keeps the configuration data for any kind of frontend. By default, settings for `pleroma_fe` are configured.
+
+Frontends can access these settings at `/api/pleroma/frontend_configurations`
+
+To add your own configuration for PleromaFE, use it like this:
+
+`config :pleroma, :frontend_configurations, :pleroma_fe, %{theme: "my-theme", ...}`
+
+These settings need to be complete, they will overide the defaults.
+
## :fe
+__THIS IS DEPRACTED__
+
+If you are using this method, please change it to the `frontend_configurations` method.
+
This section is used to configure Pleroma-FE, unless ``:managed_config`` in ``:instance`` is set to false.
* `theme`: Which theme to use, they are defined in ``styles.json``
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index 69ab58c6a..8ddc642ea 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -284,6 +284,7 @@ defmodule Pleroma.Web.Router do
post("/help/test", TwitterAPI.UtilController, :help_test)
get("/statusnet/config", TwitterAPI.UtilController, :config)
get("/statusnet/version", TwitterAPI.UtilController, :version)
+ get("/pleroma/frontend_configurations", TwitterAPI.UtilController, :frontend_configurations)
end
scope "/api", Pleroma.Web do
diff --git a/lib/pleroma/web/twitter_api/controllers/util_controller.ex b/lib/pleroma/web/twitter_api/controllers/util_controller.ex
index a79072f3d..085642876 100644
--- a/lib/pleroma/web/twitter_api/controllers/util_controller.ex
+++ b/lib/pleroma/web/twitter_api/controllers/util_controller.ex
@@ -216,6 +216,14 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
end
end
+ def frontend_configurations(conn, _params) do
+ config =
+ Pleroma.Config.get(:frontend_configurations, %{})
+ |> Enum.into(%{})
+
+ json(conn, config)
+ end
+
def version(conn, _params) do
version = Pleroma.Application.named_version()
diff --git a/test/web/twitter_api/util_controller_test.exs b/test/web/twitter_api/util_controller_test.exs
index 73aa70bd5..c099db003 100644
--- a/test/web/twitter_api/util_controller_test.exs
+++ b/test/web/twitter_api/util_controller_test.exs
@@ -32,4 +32,27 @@ defmodule Pleroma.Web.TwitterAPI.UtilControllerTest do
assert response == "job started"
end
end
+
+ describe "GET /api/pleroma/frontent_configurations" do
+ test "returns everything in :pleroma, :frontend_configurations", %{conn: conn} do
+ config = [
+ frontend_a: %{
+ x: 1,
+ y: 2
+ },
+ frontend_b: %{
+ z: 3
+ }
+ ]
+
+ Pleroma.Config.put(:frontend_configurations, config)
+
+ response =
+ conn
+ |> get("/api/pleroma/frontend_configurations")
+ |> json_response(:ok)
+
+ assert response == Jason.encode!(config |> Enum.into(%{})) |> Jason.decode!()
+ end
+ end
end