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
|