Packages
Multi-surface application runtime for Elixir. One TEA module renders to terminal, browser (LiveView), SSH, and MCP (agents). 30+ widgets, flexbox + CSS grid, AI agent runtime, distributed swarm with CRDTs, time-travel debugging, session recording, sandboxed REPL, and agentic commerce.
Current section
Files
Jump to
Current section
Files
lib/raxol_web/controllers/user_registration_controller.ex
defmodule RaxolWeb.UserRegistrationController do
@moduledoc """
Handles user registration.
"""
use RaxolWeb, :controller
# alias Raxol.Auth # Removed unused alias
# alias Raxol.Auth.User # Removed unused alias
alias RaxolWeb.UserAuth
# alias RaxolWeb.Router.Helpers, as: Routes # Removed unused alias
def new(conn, _params) do
changeset = Raxol.Auth.User.registration_changeset(%Raxol.Auth.User{}, %{})
render(conn, :new, changeset: changeset)
end
@spec create(Plug.Conn.t(), %{required(String.t()) => map()}) :: Plug.Conn.t()
def create(conn, %{"user" => user_params}) do
changeset =
Raxol.Auth.User.registration_changeset(%Raxol.Auth.User{}, user_params)
case Raxol.Repo.insert(changeset) do
{:ok, user} ->
conn
|> UserAuth.log_in_user(user)
|> put_flash(:info, "User created successfully.")
|> redirect(to: "/")
{:error, changeset} ->
conn
|> put_flash(:error, "Registration failed.")
|> render(:new, changeset: changeset)
end
end
end