defmodule BreakGlass.DefaultUserProvider do
@moduledoc """
Default implementation of `BreakGlass.UserProvider` that returns the raw
`attrs` map unchanged.
This enables zero-config use in tests and simple host applications. For
production use, implement your own `BreakGlass.UserProvider` module that
returns your application's user struct.
## Example
config :break_glass_ex,
user_provider: BreakGlass.DefaultUserProvider
When `build_user/1` is called, it returns the map passed to it directly,
which contains at minimum `:email`, `:sentinel_id`, `:authenticated_at`,
and `:break_glass`.
"""
@behaviour BreakGlass.UserProvider
@doc """
Returns the `attrs` map unchanged.
"""
@impl BreakGlass.UserProvider
def build_user(attrs), do: attrs
end