add 404 handler for admin

This commit is contained in:
sentriz
2019-07-31 17:00:44 +01:00
parent 7580835146
commit e7c98808bb
6 changed files with 19 additions and 7 deletions

View File

@@ -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 $@

View File

@@ -0,0 +1,7 @@
{{ define "content" }}
<div class="padded mono">
<div class="text-right">
page not found
</div>
</div>
{{ end }}

View File

@@ -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]

View File

@@ -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"}
}

Binary file not shown.

View File

@@ -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) {