auth_plug.ex 531 B

1234567891011121314151617181920
  1. defmodule PlausibleWeb.AuthPlug do
  2. import Plug.Conn
  3. use Plausible.Repo
  4. def init(options) do
  5. options
  6. end
  7. def call(conn, _opts) do
  8. with id when is_integer(id) <- get_session(conn, :current_user_id),
  9. %Plausible.Auth.User{} = user <- Plausible.Users.with_subscription(id) do
  10. Plausible.OpenTelemetry.add_user_attributes(user)
  11. Sentry.Context.set_user_context(%{id: user.id, name: user.name, email: user.email})
  12. assign(conn, :current_user, user)
  13. else
  14. nil -> conn
  15. end
  16. end
  17. end