瀏覽代碼

Add robots noindex header to public user specific subscription pages

Kailash Nadh 4 年之前
父節點
當前提交
c37a7690d6
共有 2 個文件被更改,包括 18 次插入9 次删除
  1. 17 9
      cmd/handlers.go
  2. 1 0
      cmd/public.go

+ 17 - 9
cmd/handlers.go

@@ -135,22 +135,22 @@ func registerHTTPHandlers(e *echo.Echo, app *App) {
 	// Public subscriber facing views.
 	e.GET("/subscription/form", handleSubscriptionFormPage)
 	e.POST("/subscription/form", handleSubscriptionForm)
-	e.GET("/subscription/:campUUID/:subUUID", validateUUID(subscriberExists(handleSubscriptionPage),
-		"campUUID", "subUUID"))
+	e.GET("/subscription/:campUUID/:subUUID", noIndex(validateUUID(subscriberExists(handleSubscriptionPage),
+		"campUUID", "subUUID")))
 	e.POST("/subscription/:campUUID/:subUUID", validateUUID(subscriberExists(handleSubscriptionPage),
 		"campUUID", "subUUID"))
-	e.GET("/subscription/optin/:subUUID", validateUUID(subscriberExists(handleOptinPage), "subUUID"))
+	e.GET("/subscription/optin/:subUUID", noIndex(validateUUID(subscriberExists(handleOptinPage), "subUUID")))
 	e.POST("/subscription/optin/:subUUID", validateUUID(subscriberExists(handleOptinPage), "subUUID"))
 	e.POST("/subscription/export/:subUUID", validateUUID(subscriberExists(handleSelfExportSubscriberData),
 		"subUUID"))
 	e.POST("/subscription/wipe/:subUUID", validateUUID(subscriberExists(handleWipeSubscriberData),
 		"subUUID"))
-	e.GET("/link/:linkUUID/:campUUID/:subUUID", validateUUID(handleLinkRedirect,
-		"linkUUID", "campUUID", "subUUID"))
-	e.GET("/campaign/:campUUID/:subUUID", validateUUID(handleViewCampaignMessage,
-		"campUUID", "subUUID"))
-	e.GET("/campaign/:campUUID/:subUUID/px.png", validateUUID(handleRegisterCampaignView,
-		"campUUID", "subUUID"))
+	e.GET("/link/:linkUUID/:campUUID/:subUUID", noIndex(validateUUID(handleLinkRedirect,
+		"linkUUID", "campUUID", "subUUID")))
+	e.GET("/campaign/:campUUID/:subUUID", noIndex(validateUUID(handleViewCampaignMessage,
+		"campUUID", "subUUID")))
+	e.GET("/campaign/:campUUID/:subUUID/px.png", noIndex(validateUUID(handleRegisterCampaignView,
+		"campUUID", "subUUID")))
 	// Public health API endpoint.
 	e.GET("/health", handleHealthCheck)
 }
@@ -232,6 +232,14 @@ func subscriberExists(next echo.HandlerFunc, params ...string) echo.HandlerFunc
 	}
 }
 
+// noIndex adds the HTTP header requesting robots to not crawl the page.
+func noIndex(next echo.HandlerFunc, params ...string) echo.HandlerFunc {
+	return func(c echo.Context) error {
+		c.Response().Header().Set("X-Robots-Tag", "noindex")
+		return next(c)
+	}
+}
+
 // getPagination takes form values and extracts pagination values from it.
 func getPagination(q url.Values, perPage int) pagination {
 	var (

+ 1 - 0
cmd/public.go

@@ -286,6 +286,7 @@ func handleSubscriptionFormPage(c echo.Context) error {
 	out := subFormTpl{}
 	out.Title = app.i18n.T("public.sub")
 	out.Lists = lists
+
 	return c.Render(http.StatusOK, "subscription-form", out)
 }