add 404 handler for admin
This commit is contained in:
@@ -6,4 +6,4 @@ if ! command -v 'entr' > /dev/null; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
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 {
|
if resp.data == nil {
|
||||||
resp.data = &templateData{}
|
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()
|
resp.data.Flashes = session.Flashes()
|
||||||
if err := session.Save(r, w); err != nil {
|
sessLogSave(w, r, session)
|
||||||
http.Error(w, fmt.Sprintf("saving session: %v", err), 500)
|
}
|
||||||
return
|
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()
|
buff := c.buffPool.Get()
|
||||||
defer c.buffPool.Put(buff)
|
defer c.buffPool.Put(buff)
|
||||||
tmpl, ok := c.templates[resp.template]
|
tmpl, ok := c.templates[resp.template]
|
||||||
|
|||||||
@@ -15,6 +15,10 @@ import (
|
|||||||
"senan.xyz/g/gonic/server/lastfm"
|
"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 {
|
func (c *Controller) ServeLogin(w http.ResponseWriter, r *http.Request) *Response {
|
||||||
return &Response{template: "login.tmpl"}
|
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)
|
// begin public routes (creates session)
|
||||||
routPublic := s.router.PathPrefix("/admin").Subrouter()
|
routPublic := s.router.PathPrefix("/admin").Subrouter()
|
||||||
routPublic.Use(ctrl.WithSession)
|
routPublic.Use(ctrl.WithSession)
|
||||||
|
routPublic.NotFoundHandler = ctrl.H(ctrl.ServeNotFound)
|
||||||
routPublic.Handle("/login", ctrl.H(ctrl.ServeLogin))
|
routPublic.Handle("/login", ctrl.H(ctrl.ServeLogin))
|
||||||
routPublic.Handle("/login_do", ctrl.H(ctrl.ServeLoginDo))
|
routPublic.Handle("/login_do", ctrl.H(ctrl.ServeLoginDo))
|
||||||
assets.PrefixDo("static", func(path string, asset *assets.EmbeddedAsset) {
|
assets.PrefixDo("static", func(path string, asset *assets.EmbeddedAsset) {
|
||||||
|
|||||||
Reference in New Issue
Block a user