Password Validator v0.1.1 PasswordValidator View Source
Primary interface to PasswordValidator. The two main methods are validate/3
and validate_password/2
.
Examples
iex> opts = [
...> length: [max: 6],
...> ]
iex> PasswordValidator.validate_password("too_long", opts)
{:error, ["String is too long. Got 8 needed 6"]}
iex> opts = [
...> length: [min: 5, max: 30],
...> character_set: [
...> lower_case: 1, # at least one lower case letter
...> upper_case: [3, :infinity], # at least three upper case letters
...> numbers: [0, 4], # at most 4 numbers
...> special: [0, 0], # no special characters allowed
...> ]
...> ]
iex> changeset = Ecto.Changeset.change({%{password: "Simple_pass12345"}, %{}}, %{})
iex> changeset = PasswordValidator.validate(changeset, :password, opts)
iex> changeset.errors
[password: {"Too many special (got 1 max was 0)", []},
password: {"Too many numbers (got 5 max was 4)", []},
password: {"Not enough upper_case characters (got 1 needed 3)", []}]
Link to this section Summary
Link to this section Functions
Link to this function
validate(changeset, field, opts \\ [])
View Source
validate(%Ecto.Changeset{action: term, changes: term, constraints: term, data: term, empty_values: term, errors: term, filters: term, params: term, prepare: term, repo: term, required: term, types: term, valid?: term, validations: term}, atom, list) :: %Ecto.Changeset{action: term, changes: term, constraints: term, data: term, empty_values: term, errors: term, filters: term, params: term, prepare: term, repo: term, required: term, types: term, valid?: term, validations: term}