41 lines
727 B
Elixir
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
|