diff --git a/hobo/middleware/maintenance.py b/hobo/middleware/maintenance.py index f8c3d04..7c412f9 100644 --- a/hobo/middleware/maintenance.py +++ b/hobo/middleware/maintenance.py @@ -19,9 +19,14 @@ from django.http import HttpResponse from django.utils.translation import ugettext as _ -def pass_through(remote_addr): - pass_through_ips = getattr(settings, 'MAINTENANCE_PASS_THROUGH_IPS', []) - if remote_addr in pass_through_ips: +def pass_through(request): + remote_addr = request.META.get('REMOTE_ADDR') + if remote_addr: + pass_through_ips = getattr(settings, 'MAINTENANCE_PASS_THROUGH_IPS', []) + if remote_addr in pass_through_ips: + return True + pass_through_header = getattr(settings, 'MAINTENANCE_PASS_THROUGH_HEADER', '') + if pass_through_header and pass_through_header in request.headers: return True return False @@ -32,9 +37,7 @@ class MaintenanceMiddleware: def __call__(self, request): maintenance_mode = getattr(settings, 'MAINTENANCE_MODE', None) - if maintenance_mode: - remote_addr = request.META.get('REMOTE_ADDR') - if not (remote_addr and pass_through(remote_addr)): - maintenance_msg = _('The site is under maintenance') - return HttpResponse('