Files
confient/lib/confient_web/controllers/session_controller.ex
2020-12-12 18:38:31 +01:00

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