aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2020-07-19 15:48:26 -0500
committerAlex Gleason <alex@alexgleason.me>2020-07-19 15:48:26 -0500
commitb829226cbfc4ded9bafed2bae57ad1de840ff798 (patch)
tree2ee8ed276e849f2e11047010b324b949b2475430 /lib
parent0fc2f5346dbf64e58e6d9b136affa107f859e0ca (diff)
downloadpleroma-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.ex10
-rw-r--r--lib/pleroma/web/router.ex2
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