All checks were successful
deploy / deploy (push) Successful in 1m31s
- add password field and required shop name to setup wizard - extract SetupHook for DRY redirect to /setup when no admin exists - add ?from=checklist param to checklist hrefs with contextual banner on email settings and theme pages for easy return to dashboard - remove email warning banner from admin layout (checklist covers it) - make email a required checklist item (no longer optional) - add DevReset module for wiping dev data without restart - rename "Theme Studio" to "Theme", drop subtitle - lower theme editor side-by-side breakpoint from 64em to 48em - clean up login/registration pages (remove dead registration_open code) - fix settings.put_secret to invalidate cache after write Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
19 lines
498 B
Elixir
19 lines
498 B
Elixir
defmodule BerrypodWeb.SetupHook do
|
|
@moduledoc """
|
|
Redirects to /setup when no admin account exists (fresh install).
|
|
|
|
Add `{BerrypodWeb.SetupHook, :require_admin}` to any live_session
|
|
that shouldn't be accessible before setup is complete.
|
|
"""
|
|
|
|
import Phoenix.LiveView, only: [redirect: 2]
|
|
|
|
def on_mount(:require_admin, _params, _session, socket) do
|
|
if Berrypod.Accounts.has_admin?() do
|
|
{:cont, socket}
|
|
else
|
|
{:halt, redirect(socket, to: "/setup")}
|
|
end
|
|
end
|
|
end
|