Pow v1.0.20 Pow.Ecto.Schema.Changeset View Source
Handles changesets methods for Pow schema.
These methods should never be called directly, but instead the methods
build in macros in Pow.Ecto.Schema
should be used. This is to ensure
that only compile time configuration is used.
Pow.Ecto.Schema.Password
is by default used to hash and verify passwords.
Configuration options
:password_min_length
- minimum password length, defaults to 8:password_max_length
- maximum password length, defaults to 4096:password_hash_methods
- the password hash and verify methods to use, defaults to:{&Pow.Ecto.Schema.Password.pbkdf2_hash/1, &Pow.Ecto.Schema.Password.pbkdf2_verify/2}
:email_validator
- the email validation method, defaults to:&Pow.Ecto.Schema.Changeset.validate_email/1
The method should either return
:ok
,:error
, or{:error, reason}
.
Link to this section Summary
Functions
Validates the confirm password field.
Validates the current password field.
Validates the password field.
Validates the password field.
Validates the user id field.
Validates an e-mail.
Verifies a password in a struct.
Link to this section Functions
confirm_password_changeset(user_or_changeset, params, config)
View Sourceconfirm_password_changeset( Ecto.Schema.t() | Ecto.Changeset.t(), map(), Pow.Config.t() ) :: Ecto.Changeset.t()
Validates the confirm password field.
Requires password
and confirm_password
params to be equal. Validation is
only performed if a change for :password
exists and the change is not
nil
.
current_password_changeset(user_or_changeset, params, config)
View Sourcecurrent_password_changeset( Ecto.Schema.t() | Ecto.Changeset.t(), map(), Pow.Config.t() ) :: Ecto.Changeset.t()
Validates the current password field.
It's only required to provide a current password if the password_hash
value exists in the data struct.
new_password_changeset(user_or_changeset, params, config)
View Sourcenew_password_changeset( Ecto.Schema.t() | Ecto.Changeset.t(), map(), Pow.Config.t() ) :: Ecto.Changeset.t()
Validates the password field.
A password hash is generated by using :password_hash_methods
in the
configuration. The password is always required if the password hash is nil
,
and it's required to be between :password_min_length
to
:password_max_length
characters long.
The password hash is only generated if the changeset is valid, but always required.
password_changeset(user_or_changeset, params, config)
View Sourcepassword_changeset(Ecto.Schema.t() | Ecto.Changeset.t(), map(), Pow.Config.t()) :: Ecto.Changeset.t()
Validates the password field.
Calls confirm_password_changeset/3
and new_password_changeset/3
.
user_id_field_changeset(user_or_changeset, params, config)
View Sourceuser_id_field_changeset( Ecto.Schema.t() | Ecto.Changeset.t(), map(), Pow.Config.t() ) :: Ecto.Changeset.t()
Validates the user id field.
The user id field is always required. It will be treated as case insensitive,
and it's required to be unique. If the user id field is :email
, the value
will be validated as an e-mail address too.
Validates an e-mail.
This implementation has the following rules:
- Split into local-part and domain at last
@
occurance Local-part should;
- be at most 64 octets
- separate quoted and unquoted content with a single dot
only have letters, digits, and the following characters outside quoted content:
!#$%&'*+-/=?^_`{|}~.
- not have any consecutive dots outside quoted content
Domain should;
- be at most 255 octets
- only have letters, digits, hyphen, and dots
Unicode characters are permitted in both local-part and domain.
verify_password(map, password, config)
View Sourceverify_password(Ecto.Schema.t(), binary(), Pow.Config.t()) :: boolean()
Verifies a password in a struct.
The password will be verified by using the :password_hash_methods
in the
configuration.
To prevent timing attacks, a blank password will be passed to the hash method
in the :password_hash_methods
configuration option if the :password_hash
is nil
.