Packages
guard
0.15.0
0.19.1
0.19.0
0.18.0
0.17.2
0.17.1
0.17.0
0.16.3
0.16.2
0.16.1
0.16.0
0.15.3
0.15.2
0.15.1
0.15.0
0.14.9
0.14.8
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.1
0.13.0
0.12.9
0.12.8
0.12.7
0.12.6
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
0.11.3
0.11.2
0.11.1
0.11.0
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.0
0.8.0
0.7.1
0.7.0
0.6.1
0.6.0
0.5.0
0.4.1
0.4.0
0.3.0
0.2.0
0.1.0
Useful package for dealing with user authentication and signup
Current section
Files
Jump to
Current section
Files
lib/guard/controller/account_controller.ex
defmodule Guard.Controller.Account do
@moduledoc false
use Guard.Controller
alias Guard.{Authenticator, Users}
plug(Guardian.Plug.EnsureAuthenticated, claims: %{"typ" => "access"})
def update_attributes(conn, params) do
user = Authenticator.authenticated_user!(conn)
with {:ok, user} <- Users.update_attributes(user, params) do
json(conn, %{user: user})
end
end
def update(conn, params) do
updatable_fields = MapSet.new(["attrs", "requested_email", "username"])
user = Authenticator.authenticated_user!(conn)
changes =
Enum.reduce(params, %{}, fn {k, v}, sum ->
if MapSet.member?(updatable_fields, k) do
Map.put(sum, k, v)
else
sum
end
end)
with {:ok, user} <- Users.update_user(user, changes) do
json(conn, %{user: user})
end
end
def delete(conn, _) do
user = Authenticator.authenticated_user!(conn)
with {:ok, user} <- Users.delete_user(user) do
json(conn, %{user: user})
end
end
end