package handlers import ( "database/sql" "log/slog" "net/http" "git.soup.land/soup/sxgo/ssr" ) // RequestContext holds dependencies that are injected into every request handler. type RequestContext struct { DB *sql.DB Logger *slog.Logger TmplCache *ssr.TmplCache IsAdmin bool // true if authenticated as admin } // RequireAdmin checks authentication and returns 401 if not admin. // Returns true if authenticated, false if 401 was sent. func (rc *RequestContext) RequireAdmin(w http.ResponseWriter) bool { if !rc.IsAdmin { http.Error(w, "Unauthorized", http.StatusUnauthorized) return false } return true }