Fix regression in MediaProxy.local?/0 and appending the Upload.base_url to whitelisted domains

This commit is contained in:
Mark Felder 2021-01-11 14:01:31 -06:00
parent 9887cdf9be
commit 1040881047

View File

@ -69,23 +69,23 @@ defmodule Pleroma.Web.MediaProxy do
# non-local non-whitelisted URLs through it and be sure that body size constraint is preserved. # non-local non-whitelisted URLs through it and be sure that body size constraint is preserved.
def preview_enabled?, do: enabled?() and !!Config.get([:media_preview_proxy, :enabled]) def preview_enabled?, do: enabled?() and !!Config.get([:media_preview_proxy, :enabled])
def local?(url), do: String.starts_with?(url, Upload.base_url()) def local?(url), do: String.starts_with?(url, Web.base_url())
def whitelisted?(url) do def whitelisted?(url) do
%{host: domain} = URI.parse(url) %{host: domain} = URI.parse(url)
%{host: web_domain} = Web.base_url() |> URI.parse()
%{host: upload_domain} = Upload.base_url() |> URI.parse()
mediaproxy_whitelist_domains = mediaproxy_whitelist_domains =
[:media_proxy, :whitelist] [:media_proxy, :whitelist]
|> Config.get() |> Config.get()
|> Enum.map(&maybe_get_domain_from_url/1) |> Enum.map(&maybe_get_domain_from_url/1)
whitelist_domains = base_url = Upload.base_url() whitelist_domains =
if web_domain == upload_domain do
if Web.base_url() == base_url do
mediaproxy_whitelist_domains mediaproxy_whitelist_domains
else else
%{host: base_domain} = URI.parse(base_url) [upload_domain | mediaproxy_whitelist_domains]
[base_domain | mediaproxy_whitelist_domains]
end end
domain in whitelist_domains domain in whitelist_domains