summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2020-07-06 11:08:13 +0200
committerlain <lain@soykaf.club>2020-07-06 11:08:13 +0200
commitaf7720237b448341932a4a0b53d94b006114e915 (patch)
treef2ae2f4e47cb9173c7c20dc605416e1ce43bce8b /lib
parentc2a052a346d5104c3657343a885255d4d7179c75 (diff)
downloadpleroma-af7720237b448341932a4a0b53d94b006114e915.tar.gz
pleroma-af7720237b448341932a4a0b53d94b006114e915.zip
Upload: Restrict description length
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/upload.ex9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/pleroma/upload.ex b/lib/pleroma/upload.ex
index 797555bff..0fa6b89dc 100644
--- a/lib/pleroma/upload.ex
+++ b/lib/pleroma/upload.ex
@@ -63,6 +63,10 @@ defmodule Pleroma.Upload do
with {:ok, upload} <- prepare_upload(upload, opts),
upload = %__MODULE__{upload | path: upload.path || "#{upload.id}/#{upload.name}"},
{:ok, upload} <- Pleroma.Upload.Filter.filter(opts.filters, upload),
+ description = Map.get(opts, :description) || upload.name,
+ {_, true} <-
+ {:description_limit,
+ String.length(description) <= Pleroma.Config.get([:instance, :description_limit])},
{:ok, url_spec} <- Pleroma.Uploaders.Uploader.put_file(opts.uploader, upload) do
{:ok,
%{
@@ -75,9 +79,12 @@ defmodule Pleroma.Upload do
"href" => url_from_spec(upload, opts.base_url, url_spec)
}
],
- "name" => Map.get(opts, :description) || upload.name
+ "name" => description
}}
else
+ {:description_limit, _} ->
+ {:error, :description_too_long}
+
{:error, error} ->
Logger.error(
"#{__MODULE__} store (using #{inspect(opts.uploader)}) failed: #{inspect(error)}"