View Source PowEmailConfirmation.Ecto.Schema (Pow v1.0.38)
Handles the e-mail confirmation schema for user.
Customize PowEmailConfirmation fields
If you need to modify any of the fields that PowEmailConfirmation
adds to
the user schema, you can override them by defining them before
pow_user_fields/0
:
defmodule MyApp.Users.User do
use Ecto.Schema
use Pow.Ecto.Schema
use Pow.Extension.Ecto.Schema,
extensions: [PowEmailConfirmation]
schema "users" do
field :email_confirmation_token, :string
field :email_confirmed_at, :utc_datetime
field :unconfirmed_email, :string
pow_user_fields()
timestamps()
end
end
Summary
Functions
@spec changeset(Ecto.Changeset.t(), map(), Pow.Config.t()) :: Ecto.Changeset.t()
Handles e-mail confirmation if e-mail is updated.
The :email_confirmation_token
will always be set if the struct isn't
persisted to the database.
For structs persisted to the database, no changes will happen if there is no
:email
in the params. Likewise, no changes will happen if the :email
change is the same as the persisted :unconfirmed_email
value.
If the :email
change is the same as the persisted :email
value then both
:email_confirmation_token
and :unconfirmed_email
will be set to nil.
Otherwise the :email
change will be copied over to :unconfirmed_email
and
the :email
change will be reverted back to the original persisted :email
value. A unique :email_confirmation_token
will be generated.
@spec confirm_email_changeset(Ecto.Schema.t() | Ecto.Changeset.t(), map()) :: Ecto.Changeset.t()
Sets the e-mail as confirmed.
This updates :email_confirmed_at
and sets :email_confirmation_token
to
nil.
If the struct has a :unconfirmed_email
value, then the :email
will be
changed to this value, and :unconfirmed_email
will be set to nil.