func (rh *RootHandler) ServeHTTP(rw http.ResponseWriter, req *http.Request) { if wantsDiscovery(req) { if auth.Allowed(req, auth.OpDiscovery) { rh.serveDiscovery(rw, req) return } if !rh.Stealth { http.Error(rw, "Unauthorized", http.StatusUnauthorized) } return } if rh.Stealth { return } if req.URL.Path == "/favicon.ico" { serveStaticFile(rw, req, Files, "favicon.ico") return } configLink := "" if auth.IsLocalhost(req) && !isDevServer() { configLink = "<p>If you're coming from localhost, configure your Camlistore server at <a href='/setup'>/setup</a>.</p>" } fmt.Fprintf(rw, "<html><body>This is camlistored, a "+ "<a href='http://camlistore.org'>Camlistore</a> server."+ "%s"+ "<p>To manage your content, access the <a href='/ui/'>/ui/</a>.</p></body></html>\n", configLink) }
func (rh *RootHandler) ServeHTTP(rw http.ResponseWriter, req *http.Request) { if wantsDiscovery(req) { if auth.Allowed(req, auth.OpDiscovery) { rh.serveDiscovery(rw, req) return } if !rh.Stealth { http.Error(rw, "Unauthorized", http.StatusUnauthorized) } return } if rh.Stealth { return } if req.URL.Path == "/favicon.ico" { serveStaticFile(rw, req, Files, "favicon.ico") return } f := func(p string, a ...interface{}) { fmt.Fprintf(rw, p, a...) } f("<html><body><p>This is camlistored (%s), a "+ "<a href='http://camlistore.org'>Camlistore</a> server.</p>", buildinfo.Version()) if auth.IsLocalhost(req) && !isDevServer() { f("<p>If you're coming from localhost, configure your Camlistore server at <a href='/setup'>/setup</a>.</p>") } if rh.ui != nil { f("<p>To manage your content, access the <a href='%s'>%s</a>.</p>", rh.ui.prefix, rh.ui.prefix) } if rh.statusRoot != "" { f("<p>To view status, see <a href='%s'>%s</a>", rh.statusRoot, rh.statusRoot) } fmt.Fprintf(rw, "</body></html>") }
func (rh *RootHandler) ServeHTTP(rw http.ResponseWriter, req *http.Request) { if wantsDiscovery(req) { // TODO(mpl): an OpDiscovery would be more to the point, // but OpGet is similar/good enough for now. if auth.Allowed(req, auth.OpGet) { rh.serveDiscovery(rw, req) return } if !rh.Stealth { http.Error(rw, "Unauthorized", http.StatusUnauthorized) } return } if rh.Stealth { return } configLink := "" if auth.IsLocalhost(req) { configLink = "<p>If you're coming from localhost, hit <a href='/setup'>/setup</a>.</p>" } fmt.Fprintf(rw, "<html><body>This is camlistored, a "+ "<a href='http://camlistore.org'>Camlistore</a> server."+ "%s</body></html>\n", configLink) }
func (h *Handler) ServeHTTP(conn http.ResponseWriter, req *http.Request) { blobRef := blobFromUrlPath(req.URL.Path) if blobRef == nil { http.Error(conn, "Malformed GET URL.", 400) return } switch { case h.AllowGlobalAccess || auth.Allowed(req, auth.OpGet): serveBlobRef(conn, req, blobRef, h.Fetcher) case auth.TriedAuthorization(req): log.Printf("Attempted authorization failed on %s", req.URL) auth.SendUnauthorized(conn, req) default: handleGetViaSharing(conn, req, blobRef, h.Fetcher) } }
func (rh *RootHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { if wantsDiscovery(r) { if auth.Allowed(r, auth.OpDiscovery) { rh.serveDiscovery(w, r) return } if !rh.Stealth { auth.SendUnauthorized(w, r) } return } if rh.Stealth { return } if r.RequestURI == "/" && rh.ui != nil { http.Redirect(w, r, "/ui/", http.StatusMovedPermanently) return } if r.URL.Path == "/favicon.ico" { ServeStaticFile(w, r, Files, "favicon.ico") return } f := func(p string, a ...interface{}) { fmt.Fprintf(w, p, a...) } f("<html><body><p>This is camlistored (%s), a "+ "<a href='http://camlistore.org'>Camlistore</a> server.</p>", buildinfo.Version()) if rh.ui != nil { f("<p>To manage your content, access the <a href='%s'>%s</a>.</p>", rh.ui.prefix, rh.ui.prefix) } if rh.statusRoot != "" { f("<p>To view status, see <a href='%s'>%s</a>.</p>", rh.statusRoot, rh.statusRoot) } if rh.helpRoot != "" { f("<p>To view more information on accessing the server, see <a href='%s'>%s</a>.</p>", rh.helpRoot, rh.helpRoot) } fmt.Fprintf(w, "</body></html>") }
func (ph *PublishHandler) ViewerIsOwner(req *http.Request) bool { // TODO: better check later return auth.Allowed(req, auth.OpAll) }