import Plug.Conn
import Ecto.Query
- alias Pleroma.Helpers.AuthHelper
alias Pleroma.Repo
alias Pleroma.User
alias Pleroma.Web.OAuth.App
def init(options), do: options
- def call(%{assigns: %{user: %User{}}} = conn, _), do: conn
-
def call(conn, _) do
with {:ok, token_str} <- fetch_token_str(conn) do
with {:ok, user, user_token} <- fetch_user_and_token(token_str),
with {:ok, token} <- fetch_token_str(headers) do
{:ok, token}
else
- _ -> fetch_token_from_session(conn)
+ _ -> :no_token_found
end
end
end
defp fetch_token_str([]), do: :no_token_found
-
- @spec fetch_token_from_session(Plug.Conn.t()) :: :no_token_found | {:ok, String.t()}
- defp fetch_token_from_session(conn) do
- case AuthHelper.get_session_token(conn) do
- nil -> :no_token_found
- token -> {:ok, token}
- end
- end
end