diff options
author | Alex Gleason <alex@alexgleason.me> | 2020-07-19 15:48:26 -0500 |
---|---|---|
committer | Alex Gleason <alex@alexgleason.me> | 2020-07-19 15:48:26 -0500 |
commit | b829226cbfc4ded9bafed2bae57ad1de840ff798 (patch) | |
tree | 2ee8ed276e849f2e11047010b324b949b2475430 /lib | |
parent | 0fc2f5346dbf64e58e6d9b136affa107f859e0ca (diff) | |
download | pleroma-b829226cbfc4ded9bafed2bae57ad1de840ff798.tar.gz |
Assign :user whenever :user_id is in session, pass to OAuth form
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/plugs/ensure_user_key_plug.ex | 10 | ||||
-rw-r--r-- | lib/pleroma/web/router.ex | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/lib/pleroma/plugs/ensure_user_key_plug.ex b/lib/pleroma/plugs/ensure_user_key_plug.ex index 9795cdbde..470fe0d95 100644 --- a/lib/pleroma/plugs/ensure_user_key_plug.ex +++ b/lib/pleroma/plugs/ensure_user_key_plug.ex @@ -3,6 +3,7 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Plugs.EnsureUserKeyPlug do + alias Pleroma.User import Plug.Conn def init(opts) do @@ -12,7 +13,12 @@ defmodule Pleroma.Plugs.EnsureUserKeyPlug do def call(%{assigns: %{user: _}} = conn, _), do: conn def call(conn, _) do - conn - |> assign(:user, nil) + with user_id <- get_session(conn, :user_id), + true <- is_binary(user_id), + %User{} = user <- User.get_by_id(user_id) do + assign(conn, :user, user) + else + _ -> assign(conn, :user, nil) + end end end diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 386308362..05841a8c4 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -276,7 +276,7 @@ defmodule Pleroma.Web.Router do scope "/oauth", Pleroma.Web.OAuth do scope [] do - pipe_through(:oauth) + pipe_through([:oauth, :after_auth]) get("/authorize", OAuthController, :authorize) end |