Files
confient/lib/confient_web/plugs/auth.ex
2020-12-12 18:38:31 +01:00

41 lines
727 B
Elixir

defmodule ConfientWeb.Plugs.Auth do
import Plug.Conn
import Phoenix.Controller
alias Confient.Account
def init(args), do: args
def call(conn, _args) do
if uid = Plug.Conn.get_session(conn, :current_user_id) do
user = Account.get_user!(uid)
conn
|> assign(:current_user, user)
else
conn
|> redirect(to: "/login")
|> halt()
end
end
end
defmodule ConfientWeb.Plugs.InjectUser do
import Plug.Conn
alias Confient.Account
def init(args), do: args
def call(conn, _args) do
if uid = Plug.Conn.get_session(conn, :current_user_id) do
user = Account.get_user!(uid)
conn
|> assign(:current_user, user)
else
conn
end
end
end