godoc: hide and block share functionality from specific countries
This will permit us to serve *.golang.org to Chinese users.
Change-Id: I5217753aa67931522c7e6be106477534c99a20b2
Reviewed-on: https://go-review.googlesource.com/14194
Reviewed-by: Andrew Gerrand <adg@golang.org>
diff --git a/godoc/server.go b/godoc/server.go
index 2c18efb..bbc3409 100644
--- a/godoc/server.go
+++ b/godoc/server.go
@@ -300,11 +300,13 @@
info.TypeInfoIndex[ti.Name] = i
}
+ info.Share = allowShare(r)
h.p.ServePage(w, Page{
Title: title,
Tabtitle: tabtitle,
Subtitle: subtitle,
Body: applyTemplate(h.p.PackageHTML, "packageHTML", info),
+ Share: info.Share,
})
}
@@ -546,6 +548,7 @@
Title: title + " " + relpath,
Tabtitle: relpath,
Body: buf.Bytes(),
+ Share: allowShare(r),
})
}
@@ -606,6 +609,7 @@
Title: "Directory " + relpath,
Tabtitle: relpath,
Body: applyTemplate(p.DirlistHTML, "dirlistHTML", list),
+ Share: allowShare(r),
})
}
@@ -631,6 +635,12 @@
log.Printf("decoding metadata %s: %v", relpath, err)
}
+ page := Page{
+ Title: meta.Title,
+ Subtitle: meta.Subtitle,
+ Share: allowShare(r),
+ }
+
// evaluate as template if indicated
if meta.Template {
tmpl, err := template.New("main").Funcs(p.TemplateFuncs()).Parse(string(src))
@@ -640,7 +650,7 @@
return
}
var buf bytes.Buffer
- if err := tmpl.Execute(&buf, nil); err != nil {
+ if err := tmpl.Execute(&buf, page); err != nil {
log.Printf("executing template %s: %v", relpath, err)
p.ServeError(w, r, relpath, err)
return
@@ -655,11 +665,8 @@
src = buf.Bytes()
}
- p.ServePage(w, Page{
- Title: meta.Title,
- Subtitle: meta.Subtitle,
- Body: src,
- })
+ page.Body = src
+ p.ServePage(w, page)
}
func (p *Presentation) ServeFile(w http.ResponseWriter, r *http.Request) {