host: discoverable log in / log out footer link
Login had no visible entry point — you could only reach it by hitting a guard. Add an auth footer the pages splice in: "log in" when logged out, "signed in as <user> · log out" when logged in. - host/auth-footer: SX fragment reading the session principal; guards a session-less request so it's safe to call anywhere. - GET /logout added alongside POST so the footer link is a plain <a> (logout is low-harm; GET is acceptable). Clears the session, redirects home. - home and post pages splice (host/auth-footer req) into their footer. Tests: home + post footers show a login link when anonymous; GET /logout -> 303. 221/221. Verified live: anonymous shows "log in"; logged in shows "signed in as admin · log out"; /logout reverts it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -115,7 +115,9 @@
|
||||
" · "
|
||||
(a :href (unquote (str "/" slug "/edit")) "edit")
|
||||
" · "
|
||||
(a :href "/" "all posts"))))))
|
||||
(a :href "/" "all posts")
|
||||
" · "
|
||||
(unquote (host/auth-footer req)))))))
|
||||
(dream-html-status 404
|
||||
(host/blog--page "Not found"
|
||||
(quasiquote
|
||||
@@ -140,7 +142,9 @@
|
||||
(quasiquote
|
||||
(div (h1 "Posts")
|
||||
(unquote listing)
|
||||
(p (a :href "/new" "+ New post")))))))))))
|
||||
(p (a :href "/new" "+ New post"))
|
||||
(p :style "margin-top:2em;font-size:0.9em;opacity:0.8"
|
||||
(unquote (host/auth-footer req))))))))))))
|
||||
|
||||
(define host/blog-index (fn (req) (host/ok (host/blog-list))))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user