Current section

Files

Jump to
curator priv templates curator.recoverable.install recoverable_controller.ex
Raw

priv/templates/curator.recoverable.install/recoverable_controller.ex

defmodule <%= inspect context.web_module %>.Auth.RecoverableController do
use <%= inspect context.web_module %>, :controller
alias <%= inspect context.web_module %>.Auth.Recoverable
plug Curator.Plug.EnsureNoResource
def new(conn, _params) do
render(conn, "new.html")
end
def create(conn, %{"user" => %{"email" => email}}) when email != "" do
Recoverable.process_email_request(email)
conn
|> put_flash(:error, "Recoverable email sent")
|> redirect(to: Routes.session_path(conn, :new))
end
def create(conn, _params) do
conn
|> put_flash(:error, "Please enter an email")
|> render("new.html")
end
def edit(conn, %{"token_id" => token_id}) do
case Recoverable.verify_token(token_id) do
{:ok, user} ->
changeset = Recoverable.change_user(user)
render(conn, "edit.html", changeset: changeset, token_id: token_id)
{:error, _} ->
conn
|> put_flash(:info, "token is invalid.")
|> redirect(to: Routes.session_path(conn, :new))
end
end
def update(conn, %{"token_id" => token_id, "user" => user_params}) do
case Recoverable.process_token(token_id, user_params) do
{:ok, _user} ->
conn
|> put_flash(:info, "Passsword was updated successfully. Please log in.")
|> redirect(to: Routes.session_path(conn, :new))
{:error, %Ecto.Changeset{} = changeset} ->
render(conn, "edit.html", changeset: changeset, token_id: token_id)
{:error, _} ->
conn
|> put_flash(:info, "token is invalid.")
|> redirect(to: Routes.session_path(conn, :new))
end
end
end