# HG changeset patch # User paulo # Date 1446019043 25200 # Node ID 6318de36e33465f54e4e9bbb9852757b5254f410 # Parent 3456dd3e8660cd2dd7ec5e0a0fe44b9e506c3822 pics2: limit access to index diff -r 3456dd3e8660 -r 6318de36e334 pics2/pics_app.py --- a/pics2/pics_app.py Wed Jul 29 00:20:39 2015 -0600 +++ b/pics2/pics_app.py Wed Oct 28 00:57:23 2015 -0700 @@ -10,12 +10,23 @@ import logging logging.basicConfig( - level=logging.DEBUG, + level=logging.INFO, filename="_LOG", format="%(asctime)s %(levelname)-8s %(message)s", ) +def _lahat(): + ret = None + + try: + with open("_lahat") as lahat_f: + ret = lahat_f.read().strip() + except IOError: + pass + + return ret + def _is_pics_dir(dirpath): return os.path.exists(os.path.join(dirpath, "_picsroot")) @@ -120,6 +131,7 @@ def __init__(self, environ): self._environ = environ self._page_func = None + self._show_index = False #logging.debug("environ = %s" % (sorted(self._environ.items(), key=lambda x: x[0]),)) logging.debug("environ['PATH_INFO'] = %s" % self._environ["PATH_INFO"]) @@ -133,12 +145,17 @@ if len(ppi) < 1 or ppi[0] != '': raise AssertionError("Parsed path length must start empty: " + pi) + self._qs = urlparse.parse_qs(self._environ["QUERY_STRING"]) + logging.debug("self._qs = %s" % self._qs) + if self._qs.get("lahat", [''])[0] == _lahat(): + self._show_index = True + if len(ppi) >= 2 and _is_pics_dir(ppi[1]): if len(ppi) == 2: self._page_func = self.page_thumbs elif len(ppi) >= 4 and ppi[2] == "browse" and os.path.exists(os.path.join(*ppi)): self._page_func = self.page_browse - elif len(ppi) == 1: + elif len(ppi) == 1 and self._show_index: self._page_func = self.page_index if self._page_func is None: @@ -183,10 +200,9 @@ d = os.path.join(*ppi) (html_root, html_header, html_body) = self._get_standard_html_doc(d) - qs = urlparse.parse_qs(self._environ["QUERY_STRING"]) from_img = None - if "from" in qs: - from_img = qs["from"][0] + if "from" in self._qs: + from_img = self._qs["from"][0] html_p = html_body.p for (t, b) in _get_images(d): @@ -195,7 +211,10 @@ else: self._go_thumbnail_links_to_browse_imgs_html_body(html_p, t, b) - html_body.a("(Other pictures)", href=self._get_app_url('')) + # TODO: fix me + #if self._show_index: + # html_body.a("(Other pictures)", href=self._get_app_url('')) + return html_root