X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/3c5fe5b298287f92a9c6a8e485c3860db36931fd..a8e1fae76ff2277a387f403600fe31bef4b2387e:/apps/maintenancemode/middleware.py?ds=sidebyside diff --git a/apps/maintenancemode/middleware.py b/apps/maintenancemode/middleware.py new file mode 100644 index 00000000..404b1a05 --- /dev/null +++ b/apps/maintenancemode/middleware.py @@ -0,0 +1,31 @@ +from django.conf import settings +from django.core import urlresolvers + +# This is django-maintancemode v. 0.9.2 + +from django.conf.urls import defaults +defaults.handler503 = 'maintenancemode.views.defaults.temporary_unavailable' +defaults.__all__.append('handler503') + +from maintenancemode.conf.settings import MAINTENANCE_MODE + +class MaintenanceModeMiddleware(object): + def process_request(self, request): + # Allow access if middleware is not activated + if not MAINTENANCE_MODE: + return None + + # Allow access if remote ip is in INTERNAL_IPS + if request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS: + return None + + # Allow acess if the user doing the request is logged in and a + # staff member. + if hasattr(request, 'user') and request.user.is_staff: + return None + + # Otherwise show the user the 503 page + resolver = urlresolvers.get_resolver(None) + + callback, param_dict = resolver._resolve_special('503') + return callback(request, **param_dict) \ No newline at end of file