NextMyDay/internal/core/server
Claus Lohmar b8ead2bf2d feat(web): role-gate the nav and show the post-setup passkey banner
The shell now renders the CORE nav entries — Home · Account for everyone,
Users · Modules only for an admin — alongside the registry entries, with the
discovered `home` dashboard collapsed onto the core Home entry (SPEC-010 §3).

A signed-in user with no passkey, who has not opted out and is not on a
loopback origin, now sees a prominent "Add a passkey" banner linking to the
Account page (SPEC-010 §6). This closes the D-041 gap where the wizard's
direct session mint bypasses the TOTP-login nudge, so the admin was never
prompted.

The door computes (admin, banner) in serveGUID — it already holds the
session, identity and user — and attaches it to the request context; the new
web.PageFor copies it onto every authenticated page (RequestContext is
untouched, so identification stays separate from authorisation, D-003).
2026-10-15 07:58:09 +00:00
..
authflow.go feat(core): add the store, identity plumbing and the door (SPEC-003/004) 2026-10-14 10:53:51 +00:00
enroll_login_test.go fix(setup): render the TOTP step instead of the enroll flow's JSON 2026-10-15 07:07:31 +00:00
handlers.go feat(core): add the store, identity plumbing and the door (SPEC-003/004) 2026-10-14 10:53:51 +00:00
recoveryflow.go feat(core): add the store, identity plumbing and the door (SPEC-003/004) 2026-10-14 10:53:51 +00:00
registry.go feat(core): add the store, identity plumbing and the door (SPEC-003/004) 2026-10-14 10:53:51 +00:00
requestcontext.go feat(core): add the store, identity plumbing and the door (SPEC-003/004) 2026-10-14 10:53:51 +00:00
roles.go feat(core): add the store, identity plumbing and the door (SPEC-003/004) 2026-10-14 10:53:51 +00:00
roles_test.go feat(core): add the store, identity plumbing and the door (SPEC-003/004) 2026-10-14 10:53:51 +00:00
server.go feat(web): role-gate the nav and show the post-setup passkey banner 2026-10-15 07:58:09 +00:00
server_test.go feat(setup): gate setup with the config toggle and an optional code 2026-10-15 06:47:33 +00:00
setup_code_test.go feat(setup): gate setup with the config toggle and an optional code 2026-10-15 06:47:33 +00:00
setup_wizard_test.go test(setup): pin the closed-window refusal on the TOTP step 2026-10-15 07:08:31 +00:00
setupflow.go feat(setup): gate setup with the config toggle and an optional code 2026-10-15 06:47:33 +00:00
spec006_passkey_nudge_test.go fix(security): gate /setup per request and pin the setup module 2026-10-14 11:30:13 +00:00
spec007_recovery_test.go feat(server): gate /setup by the direct tunnel and trust the proxy scheme 2026-10-15 05:40:36 +00:00
spec008_modules_test.go feat(core): add the store, identity plumbing and the door (SPEC-003/004) 2026-10-14 10:53:51 +00:00
spec009_web_pwa_test.go feat(core): add the store, identity plumbing and the door (SPEC-003/004) 2026-10-14 10:53:51 +00:00
static.go feat(core): add the store, identity plumbing and the door (SPEC-003/004) 2026-10-14 10:53:51 +00:00