blob: ff5d25bd8d0c493959423f36e18bc1b33888107c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
defmodule SilmataivasWeb.Plugs.Auth do
import Plug.Conn
alias Silmataivas.Users
alias Silmataivas.Repo
def init(opts), do: opts
def call(conn, _opts) do
with ["Bearer " <> user_id] <- get_req_header(conn, "authorization"),
%Users.User{} = user <- Users.get_user_by_user_id(user_id),
loaded_user <- Repo.preload(user, :location) do
assign(conn, :current_user, loaded_user)
else
_ ->
conn
|> send_resp(:unauthorized, "Unauthorized")
|> halt()
end
end
end
|