34 lines
		
	
	
		
			863 B
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			863 B
		
	
	
	
		
			Elixir
		
	
	
	
	
	
defmodule ConfientWeb.SessionController do
 | 
						|
  use ConfientWeb, :controller
 | 
						|
 | 
						|
  alias Confient.Account.Auth
 | 
						|
  import Phoenix.HTML
 | 
						|
 | 
						|
  def new(conn, _params) do
 | 
						|
    render(conn, "new.html")
 | 
						|
  end
 | 
						|
 | 
						|
  def create(conn, %{"session" => auth}) do
 | 
						|
    case Auth.login(auth) do
 | 
						|
      {:ok, user} ->
 | 
						|
        conn
 | 
						|
        |> put_session(:current_user_id, user.id)
 | 
						|
        |> put_flash(:info, raw("Utilisateur <strong>#{user.username}</strong> connecté."))
 | 
						|
        |> redirect(to: "/")
 | 
						|
 | 
						|
      :error ->
 | 
						|
        conn
 | 
						|
        |> put_flash(:error, "Il y a un problème avec la combinaison utilisateur/mot de passe")
 | 
						|
        |> redirect(to: Routes.session_path(conn, :new))
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def delete(conn, _params) do
 | 
						|
    conn
 | 
						|
    |> delete_session(:current_user_id)
 | 
						|
    |> delete_session(:current_user)
 | 
						|
    |> put_flash(:info, "Déconnecté.")
 | 
						|
    |> redirect(to: "/")
 | 
						|
  end
 | 
						|
end
 |