ash_authentication_phoenix/test/support/accounts/user.ex

42 lines
952 B
Elixir
Raw Normal View History

2022-10-25 11:23:05 +13:00
defmodule Example.Accounts.User do
@moduledoc false
use Ash.Resource,
data_layer: Ash.DataLayer.Ets,
extensions: [AshAuthentication, AshAuthentication.PasswordAuthentication]
2022-10-25 11:27:36 +13:00
@type t :: %__MODULE__{
id: Ecto.UUID.t(),
email: String.t(),
hashed_password: String.t(),
created_at: DateTime.t(),
updated_at: DateTime.t()
}
2022-10-25 11:23:05 +13:00
actions do
defaults([:read])
end
attributes do
uuid_primary_key(:id)
attribute(:email, :ci_string, allow_nil?: false)
attribute(:hashed_password, :string, allow_nil?: false, sensitive?: true, private?: true)
create_timestamp(:created_at)
update_timestamp(:updated_at)
end
authentication do
api(Example.Accounts)
end
password_authentication do
identity_field(:email)
hashed_password_field(:hashed_password)
end
identities do
identity(:email, [:email], pre_check_with: Example.Accounts)
end
end