diff --git a/lib/algora_web/controllers/user_auth.ex b/lib/algora_web/controllers/user_auth.ex index e3f00b46..66152be2 100644 --- a/lib/algora_web/controllers/user_auth.ex +++ b/lib/algora_web/controllers/user_auth.ex @@ -229,7 +229,7 @@ defmodule AlgoraWeb.UserAuth do defp maybe_store_return_to(conn), do: conn - def signed_in_path_from_context("personal"), do: ~p"/home" + def signed_in_path_from_context("personal"), do: ~p"/" def signed_in_path_from_context("preview/" <> ctx) do case String.split(ctx, "/") do diff --git a/lib/algora_web/controllers/user_controller.ex b/lib/algora_web/controllers/user_controller.ex index 6506cbfd..fd3ea617 100644 --- a/lib/algora_web/controllers/user_controller.ex +++ b/lib/algora_web/controllers/user_controller.ex @@ -22,4 +22,14 @@ defmodule AlgoraWeb.UserController do raise AlgoraWeb.NotFoundError end end + + def profile(conn, _params) do + case conn.assigns[:current_user] do + nil -> + redirect(conn, to: "/auth/login") + + user -> + redirect(conn, to: "/#{user.handle}/profile") + end + end end diff --git a/lib/algora_web/router.ex b/lib/algora_web/router.ex index 72633bf4..da383c8e 100644 --- a/lib/algora_web/router.ex +++ b/lib/algora_web/router.ex @@ -33,6 +33,11 @@ defmodule AlgoraWeb.Router do plug CORSPlug, headers: ["Content-Type"] end + # Route redirects for common paths that don't exist at top level + redirect("/home", "/", :temporary) + redirect("/dashboard", "/", :temporary) + redirect("/settings", "/user/settings", :temporary) + scope "/" do forward "/asset", AlgoraWeb.Plugs.RewriteAssetsPlug, upstream: :assets_url forward "/storage", AlgoraWeb.Plugs.RewriteStoragePlug, upstream: :storage_url @@ -56,6 +61,7 @@ defmodule AlgoraWeb.Router do get "/auth/logout", OAuthCallbackController, :sign_out get "/tip", TipController, :create get "/preview", OrgPreviewCallbackController, :new + get "/profile", UserController, :profile scope "/callbacks" do get "/stripe/refresh", StripeCallbackController, :refresh @@ -223,5 +229,9 @@ defmodule AlgoraWeb.Router do scope "/:handle" do get "/", UserController, :index end + + scope "/users" do + get "/:handle", UserController, :index + end end end