add 404 handler for admin
This commit is contained in:
@@ -6,4 +6,4 @@ if ! command -v 'entr' > /dev/null; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
find server/assets/ | entr -r ./_do_run_server $@
|
||||
find assets/ | entr -r ./_do_run_server $@
|
||||
|
||||
7
assets/pages/not_found.tmpl
Normal file
7
assets/pages/not_found.tmpl
Normal file
@@ -0,0 +1,7 @@
|
||||
{{ define "content" }}
|
||||
<div class="padded mono">
|
||||
<div class="text-right">
|
||||
page not found
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
@@ -134,13 +134,13 @@ func (c *Controller) H(h adminHandler) http.Handler {
|
||||
if resp.data == nil {
|
||||
resp.data = &templateData{}
|
||||
}
|
||||
session := r.Context().Value(key.Session).(*sessions.Session)
|
||||
if session, ok := r.Context().Value(key.Session).(*sessions.Session); ok {
|
||||
resp.data.Flashes = session.Flashes()
|
||||
if err := session.Save(r, w); err != nil {
|
||||
http.Error(w, fmt.Sprintf("saving session: %v", err), 500)
|
||||
return
|
||||
sessLogSave(w, r, session)
|
||||
}
|
||||
if user, ok := r.Context().Value(key.User).(*model.User); ok {
|
||||
resp.data.User = user
|
||||
}
|
||||
resp.data.User, _ = r.Context().Value(key.User).(*model.User)
|
||||
buff := c.buffPool.Get()
|
||||
defer c.buffPool.Put(buff)
|
||||
tmpl, ok := c.templates[resp.template]
|
||||
|
||||
@@ -15,6 +15,10 @@ import (
|
||||
"senan.xyz/g/gonic/server/lastfm"
|
||||
)
|
||||
|
||||
func (c *Controller) ServeNotFound(w http.ResponseWriter, r *http.Request) *Response {
|
||||
return &Response{template: "not_found.tmpl"}
|
||||
}
|
||||
|
||||
func (c *Controller) ServeLogin(w http.ResponseWriter, r *http.Request) *Response {
|
||||
return &Response{template: "login.tmpl"}
|
||||
}
|
||||
|
||||
BIN
server/ctrlsubsonic/testdata/db
vendored
BIN
server/ctrlsubsonic/testdata/db
vendored
Binary file not shown.
@@ -63,6 +63,7 @@ func (s *Server) SetupAdmin() error {
|
||||
// begin public routes (creates session)
|
||||
routPublic := s.router.PathPrefix("/admin").Subrouter()
|
||||
routPublic.Use(ctrl.WithSession)
|
||||
routPublic.NotFoundHandler = ctrl.H(ctrl.ServeNotFound)
|
||||
routPublic.Handle("/login", ctrl.H(ctrl.ServeLogin))
|
||||
routPublic.Handle("/login_do", ctrl.H(ctrl.ServeLoginDo))
|
||||
assets.PrefixDo("static", func(path string, asset *assets.EmbeddedAsset) {
|
||||
|
||||
Reference in New Issue
Block a user