use atoms for role changeset
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
40f301ca71
commit
24f608163f
@ -112,7 +112,7 @@ defmodule Memex.Accounts do
|
||||
|> Multi.one(:users_count, from(u in User, select: count(u.id), distinct: true))
|
||||
|> Multi.insert(:add_user, fn %{users_count: count} ->
|
||||
# if no registered users, make first user an admin
|
||||
role = if count == 0, do: "admin", else: "user"
|
||||
role = if count == 0, do: :admin, else: :user
|
||||
|
||||
User.registration_changeset(attrs) |> User.role_changeset(role)
|
||||
end)
|
||||
|
@ -50,7 +50,7 @@ defmodule Memex.Accounts.User do
|
||||
@type new_user :: %__MODULE__{}
|
||||
@type id :: UUID.t()
|
||||
@type changeset :: Changeset.t(t() | new_user())
|
||||
@type role :: :user | :admin | String.t()
|
||||
@type role :: :user | :admin
|
||||
|
||||
@doc """
|
||||
A user changeset for registration.
|
||||
@ -84,7 +84,7 @@ defmodule Memex.Accounts.User do
|
||||
"""
|
||||
@spec role_changeset(t() | new_user() | changeset(), role()) :: changeset()
|
||||
def role_changeset(user, role) do
|
||||
user |> cast(%{"role" => role}, [:role])
|
||||
user |> change(role: role)
|
||||
end
|
||||
|
||||
@spec validate_email(changeset()) :: changeset()
|
||||
|
@ -29,7 +29,7 @@ defmodule Memex.Fixtures do
|
||||
})
|
||||
|> Accounts.register_user()
|
||||
|> unwrap_ok_tuple()
|
||||
|> User.role_changeset("admin")
|
||||
|> User.role_changeset(:admin)
|
||||
|> Repo.update!()
|
||||
end
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user