From 3b7dbb57e6c3d288531692a27e0c4568b791f91e Mon Sep 17 00:00:00 2001 From: Shalabh Agarwal Date: Tue, 21 Oct 2025 23:39:54 +0530 Subject: [PATCH] appview: add user in knot404 error pages Change-Id: lpzqlvsorkwskvmqlxrmqolqspwqpull Signed-off-by: Shalabh Agarwal --- appview/middleware/middleware.go | 24 +++++++++++++++++++----- appview/pages/pages.go | 4 ++-- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/appview/middleware/middleware.go b/appview/middleware/middleware.go index 73f11611..487c67a6 100644 --- a/appview/middleware/middleware.go +++ b/appview/middleware/middleware.go @@ -206,6 +206,7 @@ func (mw Middleware) ResolveRepo() middlewareFunc { return func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { repoName := chi.URLParam(req, "repo") + user := mw.oauth.GetUser(req) id, ok := req.Context().Value("resolvedId").(identity.Identity) if !ok { log.Println("malformed middleware") @@ -220,7 +221,9 @@ func (mw Middleware) ResolveRepo() middlewareFunc { ) if err != nil { log.Println("failed to resolve repo", "err", err) - mw.pages.ErrorKnot404(w) + mw.pages.ErrorKnot404(w, pages.ErrorPageParams{ + LoggedInUser: user, + }) return } @@ -235,9 +238,12 @@ func (mw Middleware) ResolvePull() middlewareFunc { return func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { f, err := mw.repoResolver.Resolve(r) + user := mw.oauth.GetUser(r) if err != nil { log.Println("failed to fully resolve repo", err) - mw.pages.ErrorKnot404(w) + mw.pages.ErrorKnot404(w, pages.ErrorPageParams{ + LoggedInUser: user, + }) return } @@ -282,9 +288,12 @@ func (mw Middleware) ResolvePull() middlewareFunc { func (mw Middleware) ResolveIssue(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { f, err := mw.repoResolver.Resolve(r) + user := mw.oauth.GetUser(r) if err != nil { log.Println("failed to fully resolve repo", err) - mw.pages.ErrorKnot404(w) + mw.pages.ErrorKnot404(w, pages.ErrorPageParams{ + LoggedInUser: user, + }) return } @@ -292,7 +301,9 @@ func (mw Middleware) ResolveIssue(next http.Handler) http.Handler { issueId, err := strconv.Atoi(issueIdStr) if err != nil { log.Println("failed to fully resolve issue ID", err) - mw.pages.ErrorKnot404(w) + mw.pages.ErrorKnot404(w, pages.ErrorPageParams{ + LoggedInUser: user, + }) return } @@ -326,9 +337,12 @@ func (mw Middleware) GoImport() middlewareFunc { return func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { f, err := mw.repoResolver.Resolve(r) + user := mw.oauth.GetUser(r) if err != nil { log.Println("failed to fully resolve repo", err) - mw.pages.ErrorKnot404(w) + mw.pages.ErrorKnot404(w, pages.ErrorPageParams{ + LoggedInUser: user, + }) return } diff --git a/appview/pages/pages.go b/appview/pages/pages.go index a700fc3d..858a1a05 100644 --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -1530,8 +1530,8 @@ func (p *Pages) Error404(w io.Writer, params ErrorPageParams) error { return p.execute("errors/404", w, params) } -func (p *Pages) ErrorKnot404(w io.Writer) error { - return p.execute("errors/knot404", w, nil) +func (p *Pages) ErrorKnot404(w io.Writer, params ErrorPageParams) error { + return p.execute("errors/knot404", w, params) } func (p *Pages) Error503(w io.Writer) error { -- 2.43.0