mirror of
https://github.com/kevin-DL/phoenix_api_template.git
synced 2026-01-13 19:35:30 +00:00
Adding the user to the session
This commit is contained in:
27
lib/phoenix_api_template_web/auth/set_user.ex
Normal file
27
lib/phoenix_api_template_web/auth/set_user.ex
Normal file
@@ -0,0 +1,27 @@
|
||||
defmodule PhoenixApiTemplateWeb.Auth.SetUser do
|
||||
import Plug.Conn
|
||||
alias PhoenixApiTemplateWeb.Auth.ErrorResponse
|
||||
alias PhoenixApiTemplate.Accounts
|
||||
|
||||
def init(_options) do
|
||||
end
|
||||
|
||||
def call(conn, _options) do
|
||||
if conn.assigns[:user] do
|
||||
conn
|
||||
else
|
||||
user_id = get_session(conn, :user_id)
|
||||
|
||||
if user_id == nil do
|
||||
raise ErrorResponse.Unauthorized
|
||||
end
|
||||
|
||||
user = Accounts.get_user!(user_id)
|
||||
|
||||
cond do
|
||||
user_id && user -> assign(conn, :user, user)
|
||||
true -> assign(conn, :user, nil)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user