ufosc/AskAGator

View on GitHub
lib/ask_a_gator_web/plugs/set_current_user.ex

Summary

Maintainability
Test Coverage
defmodule AskAGatorWeb.Plugs.SetCurrentUser do
  import Plug.Conn

  alias AskAGator.Repo
  alias AskAGator.Accounts.User

  def init(_params) do
  end

  def call(conn, _params) do
    user_id = Plug.Conn.get_session(conn, :current_user)

    cond do
      current_user = user_id && Repo.get(User, user_id) ->
        conn
        |> assign(:current_user, current_user)
        |> assign(:user_signed_in?, true)
      true ->
        conn
        |> assign(:current_user, nil)
        |> assign(:user_signed_in?, false)
    end
  end

end