From 24d1eea554693247b6efe1c3897c7cb866e52f7d Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Fri, 9 Sep 2016 00:23:33 -0700 Subject: [PATCH] Support for custom 503 responses Added support for a custom 503 (temporary maintenance) page based upon the DISABLED file in an app folder --- applications/examples/static/503.html | 1 + applications/welcome/static/503.html | 1 + gluon/main.py | 8 ++++++-- 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 applications/examples/static/503.html create mode 100644 applications/welcome/static/503.html diff --git a/applications/examples/static/503.html b/applications/examples/static/503.html new file mode 100644 index 00000000..b063a75b --- /dev/null +++ b/applications/examples/static/503.html @@ -0,0 +1 @@ +

Temporarily down for maintenance

\ No newline at end of file diff --git a/applications/welcome/static/503.html b/applications/welcome/static/503.html new file mode 100644 index 00000000..b063a75b --- /dev/null +++ b/applications/welcome/static/503.html @@ -0,0 +1 @@ +

Temporarily down for maintenance

\ No newline at end of file diff --git a/gluon/main.py b/gluon/main.py index 971c48a7..27fb2e51 100644 --- a/gluon/main.py +++ b/gluon/main.py @@ -25,7 +25,7 @@ import socket import random import string -from gluon._compat import Cookie, urllib2 +from pydal._compat import Cookie, urllib2 #from thread import allocate_lock from gluon.fileutils import abspath, write_file @@ -390,7 +390,11 @@ def wsgibase(environ, responder): % 'invalid request', web2py_error='invalid application') elif not request.is_local and exists(disabled): - raise HTTP(503, "

Temporarily down for maintenance

") + if os.path.exists(os.path.join(request.folder,'static','503.html')): + import urllib + raise HTTP(503, urllib.urlopen(os.path.join(request.folder,'static','503.html')).read()) + else: + raise HTTP(503, "

Temporarily down for maintenance

") # ################################################## # build missing folders