Packages
livebook
0.19.8
0.19.8
0.19.7
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.6
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.3
0.17.2
0.17.1
0.17.0
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.14.0-rc.1
0.14.0-rc.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0
Automate code & data workflows with interactive notebooks
Current section
Files
Jump to
Current section
Files
lib/livebook_web/controllers/auth_controller.ex
defmodule LivebookWeb.AuthController do
use LivebookWeb, :controller
plug(:require_unauthenticated)
alias LivebookWeb.AuthPlug
defp require_unauthenticated(conn, _opts) do
if AuthPlug.authenticated?(conn) do
redirect_to(conn)
else
conn
end
end
def index(conn, %{"redirect_to" => path}) do
conn
|> put_session(:redirect_to, path)
|> redirect(to: current_path(conn, %{}))
end
def index(conn, _params) do
render(conn, "index.html",
errors: [],
authentication_mode: LivebookWeb.AuthPlug.authentication(conn).mode
)
end
def authenticate(conn, %{"password" => password}) do
conn = AuthPlug.store(conn, :password, password)
if AuthPlug.authenticated?(conn) do
redirect_to(conn)
else
render_form_error(conn, :password)
end
end
def authenticate(conn, %{"token" => token}) do
conn = AuthPlug.store(conn, :token, token)
if AuthPlug.authenticated?(conn) do
redirect_to(conn)
else
render_form_error(conn, :token)
end
end
defp redirect_to(conn) do
conn
|> then(fn conn ->
if redirect_to = get_session(conn, :redirect_to) do
conn
|> delete_session(:redirect_to)
|> redirect(to: redirect_to)
else
redirect(conn, to: ~p"/")
end
end)
|> halt()
end
defp render_form_error(conn, authentication_mode) do
errors = [{"%{authentication_mode} is invalid", [authentication_mode: authentication_mode]}]
render(conn, "index.html",
errors: errors,
authentication_mode: authentication_mode
)
end
end