From aba333241b91a2e5a9f90b7b7ce08850ef5f5545 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Thu, 20 Dec 2018 10:58:43 +0000 Subject: [PATCH] router: redirect known users to /users/foo when no other routes match --- lib/pleroma/web/router.ex | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index e988f1088..f26c76254 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -456,13 +456,30 @@ end defmodule Fallback.RedirectController do use Pleroma.Web, :controller + alias Pleroma.User - def redirector(conn, _params) do + defp send_spa_html(conn) do conn |> put_resp_content_type("text/html") |> send_file(200, Pleroma.Plugs.InstanceStatic.file_path("index.html")) end + defp redirect_for_user(conn, %User{local: true, nickname: nickname}) do + conn + |> redirect(to: "/users/#{nickname}") + end + + defp redirect_for_user(conn, _), do: send_spa_html(conn) + + def redirector(conn, params) do + path = params["path"] || [] + [possible_username | _] = path + + u = User.get_by_nickname(possible_username) + + redirect_for_user(conn, u) + end + def registration_page(conn, params) do redirector(conn, params) end