diff --git a/lib/memex/accounts.ex b/lib/memex/accounts.ex index c0cc6cf..a70fdf4 100644 --- a/lib/memex/accounts.ex +++ b/lib/memex/accounts.ex @@ -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) diff --git a/lib/memex/accounts/user.ex b/lib/memex/accounts/user.ex index 48ce284..4da45b2 100644 --- a/lib/memex/accounts/user.ex +++ b/lib/memex/accounts/user.ex @@ -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() diff --git a/test/support/fixtures.ex b/test/support/fixtures.ex index 6355a60..be6ae12 100644 --- a/test/support/fixtures.ex +++ b/test/support/fixtures.ex @@ -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