diff --git a/lib/diskuy/account/user.ex b/lib/diskuy/account/user.ex index cb69976699a7a87a22169c78bcbd0f25d0c423d5..281255416723c17e231e15f130048d2048017ec0 100644 --- a/lib/diskuy/account/user.ex +++ b/lib/diskuy/account/user.ex @@ -6,14 +6,15 @@ defmodule Diskuy.Account.User do field :username, :string field :email, :string field :picture, :string + field :role, :string, default: "reguler" timestamps() end @doc false def changeset(user, attrs) do user - |> cast(attrs, [:username, :email, :picture]) - |> validate_required([:username, :email]) + |> cast(attrs, [:username, :email, :picture, :role]) + |> validate_required([:username, :email, :role]) |> validate_format(:email, ~r/^[A-Za-z0-9._-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/) |> unique_constraint(:username) |> unique_constraint(:email) diff --git a/lib/diskuy_web/auth/google_auth.ex b/lib/diskuy_web/auth/google_auth.ex index 21393209e11733f4ace5def182aa282c76340b86..83ed14beae27fd3197819d486f4dc0d7e386a443 100644 --- a/lib/diskuy_web/auth/google_auth.ex +++ b/lib/diskuy_web/auth/google_auth.ex @@ -27,10 +27,14 @@ defmodule DiskuyWeb.Auth.GoogleAuth do case Account.get_by_username(username) do {:ok, _user} -> new_username = create_username(username) - {:ok, user} = Account.create_user(%{username: new_username, email: email, picture: picture}) + {:ok, user} = Account.create_user(%{username: new_username, + email: email, + picture: picture, role: "reguler"}) Guardian.create_token(user) {:error, :not_found} -> - {:ok, user} = Account.create_user(%{username: username, email: email, picture: picture}) + {:ok, user} = Account.create_user(%{username: username, + email: email, + picture: picture, role: "reguler"}) Guardian.create_token(user) end end diff --git a/lib/diskuy_web/views/user_view.ex b/lib/diskuy_web/views/user_view.ex index 45a172b375b53d2ef87d14180029cd55704747c3..a2b27322191518c5c9730c169cc10aba4cbca436 100644 --- a/lib/diskuy_web/views/user_view.ex +++ b/lib/diskuy_web/views/user_view.ex @@ -18,7 +18,8 @@ defmodule DiskuyWeb.UserView do %{id: user.id, username: user.username, name: user.email, - picture: user.picture + picture: user.picture, + role: user.role } end @@ -28,6 +29,7 @@ defmodule DiskuyWeb.UserView do email: user.email, username: user.username, picture: user.picture, + role: user.role, token: token } end diff --git a/priv/repo/migrations/20201211030926_create_users.exs b/priv/repo/migrations/20201211030926_create_users.exs index 3006c38529d4a0db3e11a5d87ae47d2afd5b3826..3157e906f881eb3784ffa31abd276fd5e52fc909 100644 --- a/priv/repo/migrations/20201211030926_create_users.exs +++ b/priv/repo/migrations/20201211030926_create_users.exs @@ -6,6 +6,7 @@ defmodule Diskuy.Repo.Migrations.CreateUsers do add :username, :string add :email, :string add :picture, :string + add :role, :string timestamps() end create unique_index(:users, [:username])