Packages

Adds helpful extras to Guardian like default mailer support, as well as out of the box controllers and routes

Current section

Files

Jump to
sentinel lib mix templates user_template.ex
Raw

lib/mix/templates/user_template.ex

defmodule Sentinel.UserTemplate do
use Ecto.Schema
import Ecto.Changeset
schema "users" do
field :email, :string
field :role, :string
field :hashed_confirmation_token, :string
field :confirmed_at, Ecto.DateTime
field :unconfirmed_email, :string
end
@required_fields [:email]
@optional_fields [:role, :hashed_confirmation_token, :confirmed_at, :unconfirmed_email]
def changeset(struct, params \\ %{}) do
struct
|> cast(params, @required_fields ++ @optional_fields)
|> validate_required([:email])
|> downcase_email
|> unique_constraint(:email)
end
def permissions(_user_id) do
Application.get_env(:sentinel, :permissions)
end
defp downcase_email(changeset) do
email = get_change(changeset, :email)
if is_nil(email) do
changeset
else
put_change(changeset, :email, String.downcase(email))
end
end
end