diff options
author | lain <lain@soykaf.club> | 2021-03-02 19:54:30 +0000 |
---|---|---|
committer | lain <lain@soykaf.club> | 2021-03-02 19:54:30 +0000 |
commit | b221d77a6da07c684bdbc63ddf4500e0d7ffeae8 (patch) | |
tree | 0015c7c3ea57f7340fbf80fd230a5f5e1c548148 /lib/pleroma/web/plugs/frontend_static.ex | |
parent | c2186a62d54043ea9638d33f80c7576aba9783e8 (diff) | |
parent | 0a589c887bd4215e7d443a34c194fd0a3bde8f72 (diff) |
Merge branch 'release/2.3.0' into 'stable'
Release/2.3.0
See merge request pleroma/pleroma!3354
Diffstat (limited to 'lib/pleroma/web/plugs/frontend_static.ex')
-rw-r--r-- | lib/pleroma/web/plugs/frontend_static.ex | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/pleroma/web/plugs/frontend_static.ex b/lib/pleroma/web/plugs/frontend_static.ex index 1b0b36813..eb385e94d 100644 --- a/lib/pleroma/web/plugs/frontend_static.ex +++ b/lib/pleroma/web/plugs/frontend_static.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/> # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.FrontendStatic do @@ -10,6 +10,8 @@ defmodule Pleroma.Web.Plugs.FrontendStatic do """ @behaviour Plug + @api_routes Pleroma.Web.get_api_routes() + def file_path(path, frontend_type \\ :primary) do if configuration = Pleroma.Config.get([:frontends, frontend_type]) do instance_static_path = Pleroma.Config.get([:instance, :static_dir], "instance/static") @@ -34,7 +36,8 @@ defmodule Pleroma.Web.Plugs.FrontendStatic do end def call(conn, opts) do - with false <- invalid_path?(conn.path_info), + with false <- api_route?(conn.path_info), + false <- invalid_path?(conn.path_info), frontend_type <- Map.get(opts, :frontend_type, :primary), path when not is_nil(path) <- file_path("", frontend_type) do call_static(conn, opts, path) @@ -52,6 +55,10 @@ defmodule Pleroma.Web.Plugs.FrontendStatic do defp invalid_path?([h | t], match), do: String.contains?(h, match) or invalid_path?(t) defp invalid_path?([], _match), do: false + defp api_route?([h | _]) when h in @api_routes, do: true + defp api_route?([_ | t]), do: api_route?(t) + defp api_route?([]), do: false + defp call_static(conn, opts, from) do opts = Map.put(opts, :from, from) Plug.Static.call(conn, opts) |