summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortusooa <tusooa@kazv.moe>2022-08-24 15:23:20 +0000
committertusooa <tusooa@kazv.moe>2022-08-24 15:23:20 +0000
commit85c1e1ff4dafa6cd396ded55e3484ad059a71576 (patch)
tree5325a5bf2e9fc9f300c96b1fefa0b6543561919f
parent38d9ec41beb4a6161384fe07b65bf9244ace173f (diff)
parent439c1baf25b19723bcbaac78b10d00181074e3b6 (diff)
Merge branch 'fix/oauth-token-user-caching' into 'develop'
OAuthPlug: use user cache instead of joining See merge request pleroma/pleroma!3734
-rw-r--r--lib/pleroma/web/plugs/o_auth_plug.ex12
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/pleroma/web/plugs/o_auth_plug.ex b/lib/pleroma/web/plugs/o_auth_plug.ex
index 0f74d626b..ba04ddb72 100644
--- a/lib/pleroma/web/plugs/o_auth_plug.ex
+++ b/lib/pleroma/web/plugs/o_auth_plug.ex
@@ -47,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
- query =
+ token_query =
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}
+ else
+ _ -> nil
end
end