package main import "fmt" func init() { register(Check{ Seq: 280, ID: "28", Title: "Public page handlers inject admin toolbar data", Run: func(ctx *ScanContext, rep *Reporter) { fmt.Println("=== Check 28: Public page handlers inject admin toolbar data ===") var violations []toolbarViolation for _, target := range ctx.backendTargets { for _, v := range checkToolbarInjection(target.root) { v.file = prefixDisplayPath(target.display, v.file) violations = append(violations, v) } } if len(violations) > 0 { fmt.Printf(" FAIL: %d public page handler(s) missing toolbar injection:\n", len(violations)) for _, v := range violations { fmt.Printf(" %s:%d func %s — missing siteSettings[\"toolbar\"] for admin toolbar\n", v.file, v.line, v.funcName) } fmt.Println("\n Fix: Add auth check + toolbar injection between getSiteSettings() and doc[\"site_settings\"]:") fmt.Println(" if claims, ok := auth.GetUserFromContext(ctx); ok && claims != nil {") fmt.Println(" toolbarData := h.buildToolbarData(ctx, r, page, systemTemplate, pageTemplateKey)") fmt.Println(" siteSettings[\"toolbar\"] = toolbarData") fmt.Println(" }") rep.Fail() } else { fmt.Println(" OK: All public page handlers inject admin toolbar data") } fmt.Println() }, }) }