Current section
Files
Jump to
Current section
Files
priv/templates/curator_registerable.install/controller.ex
defmodule <%= base %>.RegistrationController do
use <%= base %>.Web, :controller
alias <%= base %>.User
alias <%= base %>.Repo
plug Curator.Plug.EnsureNotAuthenticated, %{ handler: <%= base %>.ErrorHandler } when action in [:new, :create]
plug Curator.Plug.EnsureResourceAndSession, %{ handler: <%= base %>.ErrorHandler } when action in [:show, :edit, :update, :delete]
def new(conn, _params) do
changeset = User.create_registration_changeset(%User{})
render(conn, "new.html", changeset: changeset)
end
def create(conn, %{"user" => user_params}) do
changeset = User.create_registration_changeset(%User{}, user_params)
case Repo.insert(changeset) do
{:ok, user} ->
conn
|> Curator.after_extension(:registration, user)
{:error, changeset} ->
render(conn, "new.html", changeset: changeset)
end
end
def show(conn, _params) do
user = Curator.PlugHelper.current_resource(conn)
render(conn, "show.html", user: user)
end
def edit(conn, _params) do
user = Curator.PlugHelper.current_resource(conn)
changeset = User.update_registration_changeset(user)
render(conn, "edit.html", changeset: changeset)
end
def update(conn, %{"user" => user_params}) do
user = Curator.PlugHelper.current_resource(conn)
changeset = User.update_registration_changeset(user, user_params)
case Repo.update(changeset) do
{:ok, _user} ->
conn
|> put_flash(:info, "Account updated successfully.")
|> redirect(to: registration_path(conn, :show))
{:error, changeset} ->
render(conn, "edit.html", changeset: changeset)
end
end
def delete(conn, _params) do
user = Curator.PlugHelper.current_resource(conn)
Repo.delete!(user)
conn
|> put_flash(:info, "Account deleted successfully.")
|> redirect(to: "/")
end
end