Expose maximum picture sizes

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2021-04-12 10:13:11 +02:00
parent fb614cf877
commit 0210b677c5
7 changed files with 39 additions and 4 deletions

View File

@@ -134,6 +134,11 @@ defmodule Mobilizon.GraphQL.Resolvers.Config do
auth: %{
ldap: Config.ldap_enabled?(),
oauth_providers: Config.oauth_consumer_strategies()
},
upload_limits: %{
default: Config.get([:instance, :upload_limit]),
avatar: Config.get([:instance, :avatar_upload_limit]),
banner: Config.get([:instance, :banner_upload_limit])
}
}
end

View File

@@ -33,6 +33,8 @@ defmodule Mobilizon.GraphQL.Schema.ConfigType do
description: "The instance's enabled resource providers"
)
field(:upload_limits, :upload_limits, description: "The configuration for upload limits")
field(:timezones, list_of(:string), description: "The instance's available timezones")
field(:features, :features, description: "The instance's features")
field(:version, :string, description: "The instance's version")
@@ -283,6 +285,15 @@ defmodule Mobilizon.GraphQL.Schema.ConfigType do
field(:label, :string, description: "The label for the auth provider")
end
@desc """
An upload limits configuration
"""
object :upload_limits do
field(:default, :integer, description: "The default limitation, in bytes")
field(:avatar, :integer, description: "The avatar limitation, in bytes")
field(:banner, :integer, description: "The banner limitation, in bytes")
end
object :config_queries do
@desc "Get the instance config"
field :config, :config do

View File

@@ -62,9 +62,12 @@ defmodule Mobilizon.Web.Endpoint do
plug(Plug.RequestId)
plug(Plug.Logger)
upload_limit =
Keyword.get(Application.get_env(:mobilizon, :instance, []), :upload_limit, 10_485_760)
plug(
Plug.Parsers,
parsers: [:urlencoded, {:multipart, length: 10_000_000}, :json, Absinthe.Plug.Parser],
parsers: [:urlencoded, {:multipart, length: upload_limit}, :json, Absinthe.Plug.Parser],
pass: ["*/*"],
json_decoder: Jason
)