Files
music_library/lib/music_library_web/controllers/session_controller.ex
T
2024-10-21 10:29:05 +01:00

29 lines
738 B
Elixir

defmodule MusicLibraryWeb.SessionController do
use MusicLibraryWeb, :controller
@empty_form %{"password" => ""}
def new(conn, _params) do
conn
|> delete_session(:logged_in)
|> render(:new, form: @empty_form, layout: {MusicLibraryWeb.Layouts, "unauthenticated"})
end
def create(conn, %{"password" => request_password}) do
if Plug.Crypto.secure_compare(password(), request_password) do
conn
|> put_session(:logged_in, true)
|> redirect(to: "/")
else
conn
|> put_flash(:error, gettext("Invalid password"))
|> redirect(to: ~p"/login")
end
end
def password do
Application.get_env(:music_library, MusicLibraryWeb)
|> Keyword.fetch!(:auth_password)
end
end