Packages
pow
1.0.29
1.0.39
1.0.38
1.0.37
1.0.36
1.0.35
1.0.34
1.0.33
1.0.32
1.0.31
1.0.30
1.0.29
1.0.28
1.0.27
1.0.26
1.0.25
1.0.24
1.0.23
1.0.22
1.0.21
1.0.20
1.0.19
1.0.18
1.0.17
1.0.16
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
1.0.0-rc.4
1.0.0-rc.3
1.0.0-rc.2
1.0.0-rc.1
1.0.0-rc.0
0.1.0-rc.1
0.1.0-alpha.8
0.1.0-alpha.7
retired
0.1.0-alpha.6
0.1.0-alpha.5
0.1.0-alpha.4
0.1.0-alpha.3
0.1.0-alpha.2
0.1.0-alpha.1
0.1.0-alpha
Robust user authentication solution
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
lib/pow/extension/ecto/schema/base.ex
defmodule Pow.Extension.Ecto.Schema.Base do
@moduledoc """
Used for extensions to extend user schemas.
The macro will add fallback functions to the module, that can be overridden.
## Usage
defmodule MyPowExtension.Ecto.Schema do
use Pow.Extension.Ecto.Schema.Base
@impl true
def attrs(_config) do
[{:custom_field, :string}]
end
@impl true
def changeset(changeset, _config) do
Ecto.Changeset.validate_required(changeset, [:custom_field])
end
end
"""
alias Ecto.Changeset
alias Pow.Config
@callback validate!(Config.t(), atom()) :: :ok
@callback attrs(Config.t()) :: [tuple()]
@callback assocs(Config.t()) :: [tuple()]
@callback indexes(Config.t()) :: [tuple()]
@callback changeset(Changeset.t(), map(), Config.t()) :: Changeset.t()
@macrocallback __using__(Config.t()) :: Macro.t()
@optional_callbacks __using__: 1
@doc false
defmacro __using__(_opts) do
quote do
@behaviour unquote(__MODULE__)
@doc false
def validate!(_config, _module), do: :ok
@doc false
def attrs(_config), do: []
@doc false
def assocs(_config), do: []
@doc false
def indexes(_config), do: []
@doc false
def changeset(changeset, _attrs, _config), do: changeset
defoverridable unquote(__MODULE__)
end
end
end