projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add link verification in profile fields (#405)
[akkoma]
/
lib
/
pleroma
/
web
/
plugs
/
o_auth_plug.ex
diff --git
a/lib/pleroma/web/plugs/o_auth_plug.ex
b/lib/pleroma/web/plugs/o_auth_plug.ex
index a3b7d42f749dba5687f799d5d72f87536092361f..91f6e997419312c580dd4f600aee22fc003b9823 100644
(file)
--- a/
lib/pleroma/web/plugs/o_auth_plug.ex
+++ b/
lib/pleroma/web/plugs/o_auth_plug.ex
@@
-1,5
+1,5
@@
# Pleroma: A lightweight social networking server
# Pleroma: A lightweight social networking server
-# Copyright © 2017-202
0
Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-202
1
Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.Plugs.OAuthPlug do
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.Plugs.OAuthPlug do
@@
-8,6
+8,7
@@
defmodule Pleroma.Web.Plugs.OAuthPlug do
import Plug.Conn
import Ecto.Query
import Plug.Conn
import Ecto.Query
+ alias Pleroma.Helpers.AuthHelper
alias Pleroma.Repo
alias Pleroma.User
alias Pleroma.Web.OAuth.App
alias Pleroma.Repo
alias Pleroma.User
alias Pleroma.Web.OAuth.App
@@
-46,15
+47,17
@@
defmodule Pleroma.Web.Plugs.OAuthPlug do
#
@spec fetch_user_and_token(String.t()) :: {:ok, User.t(), Token.t()} | nil
defp fetch_user_and_token(token) do
#
@spec fetch_user_and_token(String.t()) :: {:ok, User.t(), Token.t()} | nil
defp fetch_user_and_token(token) do
- query =
+
token_
query =
from(t in Token,
from(t in Token,
- where: t.token == ^token,
- join: user in assoc(t, :user),
- preload: [user: user]
+ where: t.token == ^token
)
)
- with %Token{user: user} = token_record <- Repo.one(query) do
+ with %Token{user_id: user_id} = token_record <- Repo.one(token_query),
+ false <- is_nil(user_id),
+ %User{} = user <- User.get_cached_by_id(user_id) do
{:ok, user, token_record}
{:ok, user, token_record}
+ else
+ _ -> nil
end
end
end
end
@@
-98,7
+101,7
@@
defmodule Pleroma.Web.Plugs.OAuthPlug do
@spec fetch_token_from_session(Plug.Conn.t()) :: :no_token_found | {:ok, String.t()}
defp fetch_token_from_session(conn) do
@spec fetch_token_from_session(Plug.Conn.t()) :: :no_token_found | {:ok, String.t()}
defp fetch_token_from_session(conn) do
- case
get_session(conn, :oauth_toke
n) do
+ case
AuthHelper.get_session_token(con
n) do
nil -> :no_token_found
token -> {:ok, token}
end
nil -> :no_token_found
token -> {:ok, token}
end