logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: 85c1e1ff4dafa6cd396ded55e3484ad059a71576
parent 38d9ec41beb4a6161384fe07b65bf9244ace173f
Author: tusooa <tusooa@kazv.moe>
Date:   Wed, 24 Aug 2022 15:23:20 +0000

Merge branch 'fix/oauth-token-user-caching' into 'develop'

OAuthPlug: use user cache instead of joining

See merge request pleroma/pleroma!3734

Diffstat:

Mlib/pleroma/web/plugs/o_auth_plug.ex12+++++++-----
1 file 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 @@ -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