Refactoring of config wrapper
This commit is contained in:
@@ -2,7 +2,9 @@ defmodule MobilizonWeb.API.Utils do
|
||||
@moduledoc """
|
||||
Utils for API
|
||||
"""
|
||||
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Config
|
||||
alias Mobilizon.Service.Formatter
|
||||
|
||||
@doc """
|
||||
@@ -125,7 +127,7 @@ defmodule MobilizonWeb.API.Utils do
|
||||
def make_report_content_html(nil), do: {:ok, {nil, [], []}}
|
||||
|
||||
def make_report_content_html(comment) do
|
||||
max_size = Mobilizon.CommonConfig.get([:instance, :max_report_comment_size], 1000)
|
||||
max_size = Config.get([:instance, :max_report_comment_size], 1000)
|
||||
|
||||
if String.length(comment) <= max_size do
|
||||
{:ok, Formatter.html_escape(comment, "text/plain")}
|
||||
|
||||
@@ -5,11 +5,13 @@
|
||||
|
||||
defmodule MobilizonWeb.ActivityPubController do
|
||||
use MobilizonWeb, :controller
|
||||
alias Mobilizon.{Actors, Actors.Actor}
|
||||
alias MobilizonWeb.ActivityPub.ActorView
|
||||
|
||||
alias Mobilizon.{Actors, Actors.Actor, Config}
|
||||
alias Mobilizon.Service.ActivityPub
|
||||
alias Mobilizon.Service.Federator
|
||||
|
||||
alias MobilizonWeb.ActivityPub.ActorView
|
||||
|
||||
require Logger
|
||||
|
||||
action_fallback(:errors)
|
||||
@@ -17,7 +19,7 @@ defmodule MobilizonWeb.ActivityPubController do
|
||||
plug(:relay_active? when action in [:relay])
|
||||
|
||||
def relay_active?(conn, _) do
|
||||
if Mobilizon.CommonConfig.get([:instance, :allow_relay]) do
|
||||
if Config.get([:instance, :allow_relay]) do
|
||||
conn
|
||||
else
|
||||
conn
|
||||
|
||||
@@ -5,13 +5,16 @@
|
||||
|
||||
defmodule MobilizonWeb.MediaProxyController do
|
||||
use MobilizonWeb, :controller
|
||||
|
||||
alias Mobilizon.Config
|
||||
|
||||
alias MobilizonWeb.ReverseProxy
|
||||
alias MobilizonWeb.MediaProxy
|
||||
|
||||
@default_proxy_opts [max_body_length: 25 * 1_048_576, http: [follow_redirect: true]]
|
||||
|
||||
def remote(conn, %{"sig" => sig64, "url" => url64} = params) do
|
||||
with config <- Mobilizon.CommonConfig.get([:media_proxy], []),
|
||||
with config <- Config.get([:media_proxy], []),
|
||||
true <- Keyword.get(config, :enabled, false),
|
||||
{:ok, url} <- MediaProxy.decode_url(sig64, url64),
|
||||
:ok <- filename_matches(Map.has_key?(params, "filename"), conn.request_path, url) do
|
||||
|
||||
@@ -6,10 +6,8 @@
|
||||
defmodule MobilizonWeb.NodeInfoController do
|
||||
use MobilizonWeb, :controller
|
||||
|
||||
alias Mobilizon.{Events, Users}
|
||||
alias Mobilizon.CommonConfig
|
||||
alias Mobilizon.{Config, Events, Users}
|
||||
|
||||
@instance Application.get_env(:mobilizon, :instance)
|
||||
@node_info_supported_versions ["2.0", "2.1"]
|
||||
@node_info_schema_uri "http://nodeinfo.diaspora.software/ns/schema/"
|
||||
|
||||
@@ -35,14 +33,14 @@ defmodule MobilizonWeb.NodeInfoController do
|
||||
version: version,
|
||||
software: %{
|
||||
name: "mobilizon",
|
||||
version: Keyword.get(@instance, :version)
|
||||
version: Config.instance_version()
|
||||
},
|
||||
protocols: ["activitypub"],
|
||||
services: %{
|
||||
inbound: [],
|
||||
outbound: ["atom1.0"]
|
||||
},
|
||||
openRegistrations: CommonConfig.registrations_open?(),
|
||||
openRegistrations: Config.instance_registrations_open?(),
|
||||
usage: %{
|
||||
users: %{
|
||||
total: Users.count_users()
|
||||
@@ -51,14 +49,14 @@ defmodule MobilizonWeb.NodeInfoController do
|
||||
localComments: Events.count_local_comments()
|
||||
},
|
||||
metadata: %{
|
||||
nodeName: CommonConfig.instance_name(),
|
||||
nodeDescription: CommonConfig.instance_description()
|
||||
nodeName: Config.instance_name(),
|
||||
nodeDescription: Config.instance_description()
|
||||
}
|
||||
}
|
||||
|
||||
response =
|
||||
if version == "2.1" do
|
||||
put_in(response, [:software, :repository], Keyword.get(@instance, :repository))
|
||||
put_in(response, [:software, :repository], Config.instance_repository())
|
||||
else
|
||||
response
|
||||
end
|
||||
|
||||
@@ -7,6 +7,9 @@ defmodule MobilizonWeb.MediaProxy do
|
||||
@moduledoc """
|
||||
Handles proxifying media files
|
||||
"""
|
||||
|
||||
alias Mobilizon.Config
|
||||
|
||||
@base64_opts [padding: false]
|
||||
|
||||
def url(nil), do: nil
|
||||
@@ -66,7 +69,7 @@ defmodule MobilizonWeb.MediaProxy do
|
||||
|
||||
def build_url(sig_base64, url_base64, filename \\ nil) do
|
||||
[
|
||||
Mobilizon.CommonConfig.get([:media_proxy, :base_url], MobilizonWeb.Endpoint.url()),
|
||||
Config.get([:media_proxy, :base_url], MobilizonWeb.Endpoint.url()),
|
||||
"proxy",
|
||||
sig_base64,
|
||||
url_base64,
|
||||
|
||||
@@ -8,10 +8,14 @@ defmodule MobilizonWeb.Plugs.UploadedMedia do
|
||||
Serves uploaded media files
|
||||
"""
|
||||
|
||||
@behaviour Plug
|
||||
|
||||
import Plug.Conn
|
||||
|
||||
alias Mobilizon.Config
|
||||
|
||||
require Logger
|
||||
|
||||
@behaviour Plug
|
||||
# no slashes
|
||||
@path "media"
|
||||
|
||||
@@ -38,7 +42,7 @@ defmodule MobilizonWeb.Plugs.UploadedMedia do
|
||||
conn
|
||||
end
|
||||
|
||||
config = Mobilizon.CommonConfig.get([MobilizonWeb.Upload])
|
||||
config = Config.get([MobilizonWeb.Upload])
|
||||
|
||||
with uploader <- Keyword.fetch!(config, :uploader),
|
||||
proxy_remote = Keyword.get(config, :proxy_remote, false),
|
||||
@@ -75,7 +79,7 @@ defmodule MobilizonWeb.Plugs.UploadedMedia do
|
||||
conn
|
||||
|> MobilizonWeb.ReverseProxy.call(
|
||||
url,
|
||||
Mobilizon.CommonConfig.get([Mobilizon.Upload, :proxy_opts], [])
|
||||
Config.get([Mobilizon.Upload, :proxy_opts], [])
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
defmodule MobilizonWeb.Resolvers.Config do
|
||||
@moduledoc """
|
||||
Handles the config-related GraphQL calls
|
||||
Handles the config-related GraphQL calls.
|
||||
"""
|
||||
|
||||
import Mobilizon.CommonConfig
|
||||
alias Mobilizon.Config
|
||||
|
||||
@doc """
|
||||
Get config
|
||||
Gets config.
|
||||
"""
|
||||
def get_config(_parent, _params, _context) do
|
||||
{:ok,
|
||||
%{
|
||||
name: instance_name(),
|
||||
registrations_open: registrations_open?(),
|
||||
description: instance_description()
|
||||
name: Config.instance_name(),
|
||||
registrations_open: Config.instance_registrations_open?(),
|
||||
description: Config.instance_description()
|
||||
}}
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2,12 +2,14 @@ defmodule MobilizonWeb.Resolvers.User do
|
||||
@moduledoc """
|
||||
Handles the user-related GraphQL calls
|
||||
"""
|
||||
|
||||
alias Mobilizon.{Actors, Config, Users}
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.CommonConfig
|
||||
alias Mobilizon.Users.User
|
||||
alias Mobilizon.{Actors, Users}
|
||||
alias Mobilizon.Service.Users.{ResetPassword, Activation}
|
||||
alias Mobilizon.Users.User
|
||||
|
||||
import Mobilizon.Users.Guards
|
||||
|
||||
require Logger
|
||||
|
||||
@doc """
|
||||
@@ -110,7 +112,7 @@ defmodule MobilizonWeb.Resolvers.User do
|
||||
"""
|
||||
@spec create_user(any(), map(), any()) :: tuple()
|
||||
def create_user(_parent, args, _resolution) do
|
||||
with {:registrations_open, true} <- {:registrations_open, CommonConfig.registrations_open?()},
|
||||
with {:registrations_open, true} <- {:registrations_open, Config.instance_registrations_open?()},
|
||||
{:ok, %User{} = user} <- Users.register(args) do
|
||||
Activation.send_confirmation_email(user)
|
||||
{:ok, user}
|
||||
|
||||
@@ -31,7 +31,11 @@ defmodule MobilizonWeb.Upload do
|
||||
* `MobilizonWeb.Upload.Filter`
|
||||
|
||||
"""
|
||||
|
||||
alias Ecto.UUID
|
||||
|
||||
alias Mobilizon.Config
|
||||
|
||||
require Logger
|
||||
|
||||
@type source ::
|
||||
@@ -110,26 +114,26 @@ defmodule MobilizonWeb.Upload do
|
||||
{size_limit, activity_type} =
|
||||
case Keyword.get(opts, :type) do
|
||||
:banner ->
|
||||
{Mobilizon.CommonConfig.get!([:instance, :banner_upload_limit]), "Image"}
|
||||
{Config.get!([:instance, :banner_upload_limit]), "Image"}
|
||||
|
||||
:avatar ->
|
||||
{Mobilizon.CommonConfig.get!([:instance, :avatar_upload_limit]), "Image"}
|
||||
{Config.get!([:instance, :avatar_upload_limit]), "Image"}
|
||||
|
||||
_ ->
|
||||
{Mobilizon.CommonConfig.get!([:instance, :upload_limit]), nil}
|
||||
{Config.get!([:instance, :upload_limit]), nil}
|
||||
end
|
||||
|
||||
%{
|
||||
activity_type: Keyword.get(opts, :activity_type, activity_type),
|
||||
size_limit: Keyword.get(opts, :size_limit, size_limit),
|
||||
uploader: Keyword.get(opts, :uploader, Mobilizon.CommonConfig.get([__MODULE__, :uploader])),
|
||||
filters: Keyword.get(opts, :filters, Mobilizon.CommonConfig.get([__MODULE__, :filters])),
|
||||
uploader: Keyword.get(opts, :uploader, Config.get([__MODULE__, :uploader])),
|
||||
filters: Keyword.get(opts, :filters, Config.get([__MODULE__, :filters])),
|
||||
description: Keyword.get(opts, :description),
|
||||
base_url:
|
||||
Keyword.get(
|
||||
opts,
|
||||
:base_url,
|
||||
Mobilizon.CommonConfig.get([__MODULE__, :base_url], MobilizonWeb.Endpoint.url())
|
||||
Config.get([__MODULE__, :base_url], MobilizonWeb.Endpoint.url())
|
||||
)
|
||||
}
|
||||
end
|
||||
@@ -173,7 +177,7 @@ defmodule MobilizonWeb.Upload do
|
||||
defp url_from_spec(%__MODULE__{name: name}, base_url, {:file, path}) do
|
||||
path =
|
||||
URI.encode(path, &char_unescaped?/1) <>
|
||||
if Mobilizon.CommonConfig.get([__MODULE__, :link_name], false) do
|
||||
if Config.get([__MODULE__, :link_name], false) do
|
||||
"?name=#{URI.encode(name, &char_unescaped?/1)}"
|
||||
else
|
||||
""
|
||||
|
||||
@@ -9,11 +9,14 @@ defmodule MobilizonWeb.Upload.Filter.AnonymizeFilename do
|
||||
|
||||
Should be used after `MobilizonWeb.Upload.Filter.Dedupe`.
|
||||
"""
|
||||
|
||||
@behaviour MobilizonWeb.Upload.Filter
|
||||
|
||||
alias Mobilizon.Config
|
||||
|
||||
def filter(upload) do
|
||||
extension = List.last(String.split(upload.name, "."))
|
||||
name = Mobilizon.CommonConfig.get([__MODULE__, :text], random(extension))
|
||||
name = Config.get([__MODULE__, :text], random(extension))
|
||||
{:ok, %MobilizonWeb.Upload{upload | name: name}}
|
||||
end
|
||||
|
||||
|
||||
@@ -7,13 +7,16 @@ defmodule MobilizonWeb.Upload.Filter.Mogrify do
|
||||
@moduledoc """
|
||||
Handle mogrify transformations
|
||||
"""
|
||||
|
||||
@behaviour MobilizonWeb.Upload.Filter
|
||||
|
||||
alias Mobilizon.Config
|
||||
|
||||
@type conversion :: action :: String.t() | {action :: String.t(), opts :: String.t()}
|
||||
@type conversions :: conversion() | [conversion()]
|
||||
|
||||
def filter(%MobilizonWeb.Upload{tempfile: file, content_type: "image" <> _}) do
|
||||
filters = Mobilizon.CommonConfig.get!([__MODULE__, :args])
|
||||
filters = Config.get!([__MODULE__, :args])
|
||||
|
||||
file
|
||||
|> Mogrify.open()
|
||||
|
||||
@@ -7,8 +7,11 @@ defmodule MobilizonWeb.Uploaders.Local do
|
||||
@moduledoc """
|
||||
Local uploader for files
|
||||
"""
|
||||
|
||||
@behaviour MobilizonWeb.Uploaders.Uploader
|
||||
|
||||
alias Mobilizon.Config
|
||||
|
||||
def get_file(_) do
|
||||
{:ok, {:static_dir, upload_path()}}
|
||||
end
|
||||
@@ -59,6 +62,6 @@ defmodule MobilizonWeb.Uploaders.Local do
|
||||
end
|
||||
|
||||
def upload_path do
|
||||
Mobilizon.CommonConfig.get!([__MODULE__, :uploads])
|
||||
Config.get!([__MODULE__, :uploads])
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user