diff options
Diffstat (limited to 'lib/pleroma/web/router.ex')
-rw-r--r-- | lib/pleroma/web/router.ex | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 6cf689ce2..25e866c48 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -505,7 +505,8 @@ defmodule Pleroma.Web.Router do scope "/", Fallback do get("/registration/:token", RedirectController, :registration_page) - get("/*path", RedirectController, :redirector_with_meta) + get("/:maybe_nickname_or_id", RedirectController, :redirector_with_meta) + get("/*path", RedirectController, :redirector) options("/*path", RedirectController, :empty) end @@ -514,6 +515,7 @@ end defmodule Fallback.RedirectController do use Pleroma.Web, :controller alias Pleroma.Web.Metadata + alias Pleroma.User def redirector(conn, _params) do conn @@ -521,6 +523,15 @@ defmodule Fallback.RedirectController do |> send_file(200, index_file_path()) end + def redirector_with_meta(conn, %{"maybe_nickname_or_id" => maybe_nickname_or_id} = params) do + with %User{} = user <- User.get_cached_by_nickname_or_id(maybe_nickname_or_id) do + redirector_with_meta(conn, %{user: user}) + else + nil -> + redirector(conn, params) + end + end + def redirector_with_meta(conn, params) do {:ok, index_content} = File.read(index_file_path()) tags = Metadata.build_tags(params) |