1 defmodule Pleroma.Plugs.UserFetcherPlug do
10 def call(conn, _options) do
11 with %{auth_credentials: %{username: username}} <- conn.assigns,
12 {:ok, %User{} = user} <- user_fetcher(username) do
14 |> assign(:auth_user, user)
20 defp user_fetcher(username_or_email) do
24 # First, try logging in as if it was a name
25 user = Repo.get_by(User, %{nickname: username_or_email}) ->
28 # If we get nil, we try using it as an email
29 user = Repo.get_by(User, %{email: username_or_email}) ->