summaryrefslogtreecommitdiff
path: root/lib/aggiedit_web/controllers/user_registration_controller.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/aggiedit_web/controllers/user_registration_controller.ex')
-rw-r--r--lib/aggiedit_web/controllers/user_registration_controller.ex30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/aggiedit_web/controllers/user_registration_controller.ex b/lib/aggiedit_web/controllers/user_registration_controller.ex
new file mode 100644
index 0000000..c8a4d4a
--- /dev/null
+++ b/lib/aggiedit_web/controllers/user_registration_controller.ex
@@ -0,0 +1,30 @@
+defmodule AggieditWeb.UserRegistrationController do
+ use AggieditWeb, :controller
+
+ alias Aggiedit.Accounts
+ alias Aggiedit.Accounts.User
+ alias AggieditWeb.UserAuth
+
+ def new(conn, _params) do
+ changeset = Accounts.change_user_registration(%User{})
+ render(conn, "new.html", changeset: changeset)
+ end
+
+ def create(conn, %{"user" => user_params}) do
+ case Accounts.register_user(user_params) do
+ {:ok, user} ->
+ {:ok, _} =
+ Accounts.deliver_user_confirmation_instructions(
+ user,
+ &Routes.user_confirmation_url(conn, :edit, &1)
+ )
+
+ conn
+ |> put_flash(:info, "User created successfully.")
+ |> UserAuth.log_in_user(user)
+
+ {:error, %Ecto.Changeset{} = changeset} ->
+ render(conn, "new.html", changeset: changeset)
+ end
+ end
+end