2e40cbd5da
- When showing a single record, use record details - Split title into logical breadcrumbs
33 lines
793 B
Elixir
33 lines
793 B
Elixir
defmodule MusicLibraryWeb.SessionController do
|
|
use MusicLibraryWeb, :controller
|
|
|
|
@empty_form %{"password" => ""}
|
|
|
|
def new(conn, _params) do
|
|
conn
|
|
|> delete_session(:logged_in)
|
|
|> render(:new,
|
|
page_title: gettext("Login"),
|
|
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: ~p"/")
|
|
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
|