# HG changeset patch # User paulo # Date 1642668014 28800 # Node ID 06f97e38e1b2bc231375be8f3d0a3cc38caf7f79 # Parent bd8a61f9162f1448e36ba9d06cb0be2642514427 pics3: add pin support diff -r bd8a61f9162f -r 06f97e38e1b2 pics3/flask_run_dev.sh --- a/pics3/flask_run_dev.sh Tue Jan 11 02:36:16 2022 -0800 +++ b/pics3/flask_run_dev.sh Thu Jan 20 00:40:14 2022 -0800 @@ -1,5 +1,6 @@ #!/bin/sh +export PIN=testpin export GOOGLE_APPLICATION_CREDENTIALS=dev.key.json export GCS_BUCKET=dev.pauloang.com export FLASK_APP=pics_flask_app.py diff -r bd8a61f9162f -r 06f97e38e1b2 pics3/pics_flask_app.py --- a/pics3/pics_flask_app.py Tue Jan 11 02:36:16 2022 -0800 +++ b/pics3/pics_flask_app.py Thu Jan 20 00:40:14 2022 -0800 @@ -11,6 +11,16 @@ GCS_CLIENT = google.cloud.storage.Client() GCS_BUCKET = GCS_CLIENT.get_bucket(os.environ.get("GCS_BUCKET")) +PIN = os.environ.get("PIN") + + +class PinFailError(Exception): + def __str__(self): + return "PIN FAIL!" + +class PinSetupError(Exception): + def __str__(self): + return "PIN SETUP ERROR!" class PicsDialect(csv.Dialect): @@ -105,6 +115,11 @@ (root, header, body) = _get_standard_html_doc("Pictures") header.script('', type="text/javascript", src=flask.url_for("static", filename="lazyload.js")) + if not PIN: + raise PinSetupError + elif flask.request.cookies.get("lahat") != PIN: + raise PinFailError + pics_dirs = [] pics_dirs_index_blob = GCS_BUCKET.get_blob("pics/index.tsv") if pics_dirs_index_blob: