View Source Pow.Ecto.Context (Pow v1.0.38)
Handles pow users context for user.
Usage
This module will be used by pow by default. If you
wish to have control over context functions, you can
do configure lib/my_project/users/users.ex
the following way:
defmodule MyApp.Users do
use Pow.Ecto.Context,
repo: MyApp.Repo,
user: MyApp.Users.User
def create(params) do
pow_create(params)
end
end
Remember to update configuration with users_context: MyApp.Users
.
The following Pow functions can be accessed:
pow_authenticate/1
pow_create/1
pow_update/2
pow_delete/1
pow_get_by/1
Configuration options
:repo
- the ecto repo module (required):user
- the user schema module (required):repo_opts
- keyword list options for the repo,:prefix
can be set here
Summary
Functions
Finds a user based on the user id, and verifies the password on the user.
Creates a new user.
Deletes the user.
Inserts a changeset to the database.
Updates a changeset in the database.
Retrieves an user by the provided clauses.
See Pow.Config.repo!/1
.
Updates the user.
See Pow.Config.user!/1
.
Types
@type changeset() :: Pow.Context.changeset()
@type user() :: Pow.Context.user()
Functions
@spec authenticate(map(), Pow.Config.t()) :: user() | nil
Finds a user based on the user id, and verifies the password on the user.
User schema module and repo module will be fetched from the config. The user id field is fetched from the user schema module.
The function will return nil if either the fetched user or password is nil.
To prevent timing attacks, a blank user struct will be passed to the
verify_password/2
function for the user schema module to ensure that the
the response time will be equal as when a password is verified.
@spec create(map(), Pow.Config.t()) :: {:ok, user()} | {:error, changeset()}
Creates a new user.
User schema module and repo module will be fetched from config.
@spec delete(user(), Pow.Config.t()) :: {:ok, user()} | {:error, changeset()}
Deletes the user.
Repo module will be fetched from the config.
@spec do_insert(changeset(), Pow.Config.t()) :: {:ok, user()} | {:error, changeset()}
Inserts a changeset to the database.
If succesful, the returned row will be reloaded from the database.
@spec do_update(changeset(), Pow.Config.t()) :: {:ok, user()} | {:error, changeset()}
Updates a changeset in the database.
If succesful, the returned row will be reloaded from the database.
@spec get_by(Keyword.t() | map(), Pow.Config.t()) :: user() | nil
Retrieves an user by the provided clauses.
User schema module and repo module will be fetched from the config.
See Pow.Config.repo!/1
.
@spec update(user(), map(), Pow.Config.t()) :: {:ok, user()} | {:error, changeset()}
Updates the user.
User schema module will be fetched from provided user and repo will be fetched from the config.
See Pow.Config.user!/1
.