logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git

user_fetcher_plug.ex (712B)


  1. # Pleroma: A lightweight social networking server
  2. # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
  3. # SPDX-License-Identifier: AGPL-3.0-only
  4. defmodule Pleroma.Web.Plugs.UserFetcherPlug do
  5. @moduledoc """
  6. Assigns `:auth_user` basing on `:auth_credentials`.
  7. NOTE: no checks are performed at this step, auth_credentials/username could be easily faked.
  8. """
  9. alias Pleroma.User
  10. import Plug.Conn
  11. def init(options) do
  12. options
  13. end
  14. def call(conn, _options) do
  15. with %{auth_credentials: %{username: username}} <- conn.assigns,
  16. %User{} = user <- User.get_by_nickname_or_email(username) do
  17. assign(conn, :auth_user, user)
  18. else
  19. _ -> conn
  20. end
  21. end
  22. end