Packages
pow
0.1.0-alpha
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/extensions/email_confirmation/ecto/context.ex
defmodule PowEmailConfirmation.Ecto.Context do
@moduledoc false
use Pow.Extension.Ecto.Context.Base
alias Pow.Config
@spec get_by_confirmation_token(Config.t(), binary()) :: map() | nil
def get_by_confirmation_token(config, token) do
user_mod = user_schema_mod(config)
repo = repo(config)
repo.get_by(user_mod, email_confirmation_token: token)
end
@spec confirm_email(Config.t(), map()) :: {:ok, map()} | {:error, Changeset.t()}
def confirm_email(config, user) do
repo = repo(config)
case user.email_confirmed_at do
nil ->
user
|> Ecto.Changeset.change(email_confirmed_at: DateTime.utc_now())
|> repo.update()
_email_confirmed_at ->
{:ok, user}
end
end
end