# HG changeset patch # User paulo # Date 1467184315 25200 # Node ID d7d67887102fedef4be2975e060ee59de63f8028 # Parent 256b8df1c6869d8ab56c7c477c576ae84930f1dc move pinlib to a shared location and have pics use it diff -r 256b8df1c686 -r d7d67887102f laterlinks2/laterlinks_app.py --- a/laterlinks2/laterlinks_app.py Fri Jun 17 22:24:17 2016 -0700 +++ b/laterlinks2/laterlinks_app.py Wed Jun 29 00:11:55 2016 -0700 @@ -88,7 +88,7 @@ if is_post: try: - pinlib.check(cookies) + pinlib.PinMan("llpin").check(cookies) except pinlib.PinFailError: raise PinFailError if inp["submit"][0] == "Add": diff -r 256b8df1c686 -r d7d67887102f laterlinks2/pinlib.py --- a/laterlinks2/pinlib.py Fri Jun 17 22:24:17 2016 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -import urlparse - - -PIN_KEY = "llpin" -PIN_FN = "_%s" % PIN_KEY - - -class PinFailError(Exception): - pass - - -def load(): - ret = None - - try: - with open(PIN_FN) as pin_f: - ret = pin_f.read().strip() - except IOError: - pass - - return ret - - -def parse_cookies(environ): - return urlparse.parse_qs(environ.get("HTTP_COOKIE", "")) - - -def check(cookies): - if PIN_KEY not in cookies: - raise PinFailError() - - pin = cookies[PIN_KEY][0] - if pin != load(): - raise PinFailError() - - return pin diff -r 256b8df1c686 -r d7d67887102f pics2/pics_app.py --- a/pics2/pics_app.py Fri Jun 17 22:24:17 2016 -0700 +++ b/pics2/pics_app.py Wed Jun 29 00:11:55 2016 -0700 @@ -8,6 +8,8 @@ import html +import pinlib + import logging logging.basicConfig( level=logging.INFO, @@ -16,18 +18,6 @@ ) -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")) @@ -152,7 +142,7 @@ self._qs = urlparse.parse_qs(self._environ["QUERY_STRING"]) logging.debug("self._qs = %s" % self._qs) - if self._qs.get("lahat", [''])[0] == _lahat(): + if pinlib.PinMan("lahat").check(pinlib.parse_cookies(self._environ)): self._show_index = True if len(ppi) >= 2 and _is_pics_dir(ppi[1]): diff -r 256b8df1c686 -r d7d67887102f pinlib/pinlib.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pinlib/pinlib.py Wed Jun 29 00:11:55 2016 -0700 @@ -0,0 +1,37 @@ +import urlparse + + +def parse_cookies(environ): + return urlparse.parse_qs(environ.get("HTTP_COOKIE", "")) + + +class PinFailError(Exception): + pass + + +class PinMan(object): + def __init__(self, key): + assert key + self._key = key + self._fn = "_%s" % key + + def load(self): + ret = None + + try: + with open(self._fn) as pin_f: + ret = pin_f.read().strip() + except IOError: + pass + + return ret + + def check(self, cookies): + if self._key not in cookies: + raise PinFailError() + + pin = cookies[self._key][0] + if pin != self.load(): + raise PinFailError() + + return pin