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
 |