Skip to content

Commit b2ad05f

Browse files
author
Alireza Amouzadeh
committed
Added support for newer versions of Django.
1 parent 6781056 commit b2ad05f

File tree

3 files changed

+10
-15
lines changed

3 files changed

+10
-15
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ lib64/
1919
parts/
2020
sdist/
2121
var/
22+
/.idea
23+
.venv
2224
*.egg-info/
2325
.installed.cfg
2426
*.egg

maintenancemode/http.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
# -*- coding: utf-8 -*-
2-
32
from django.http import HttpResponse
43

54

maintenancemode/middleware.py

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
# -*- coding: utf-8 -*-
22

33
import re
4-
import django
54

65
from django.conf import urls
7-
from django.core import urlresolvers
6+
from django.http import Http404
7+
from django.utils.deprecation import MiddlewareMixin
88

9-
from .conf import settings
9+
from maintenancemode.http import HttpResponseTemporaryUnavailable
1010
from . import utils as maintenance
11+
from .conf import settings
1112

1213
urls.handler503 = 'maintenancemode.views.temporary_unavailable'
1314
urls.__all__.append('handler503')
1415

1516
IGNORE_URLS = tuple([re.compile(u) for u in settings.MAINTENANCE_IGNORE_URLS])
1617

1718

18-
class MaintenanceModeMiddleware(object):
19+
class MaintenanceModeMiddleware(MiddlewareMixin):
1920

2021
def process_request(self, request):
2122
# Allow access if middleware is not activated
@@ -35,8 +36,8 @@ def process_request(self, request):
3536
return None
3637

3738
# Allow access if the user doing the request is logged in and a
38-
# staff member.
39-
if hasattr(request, 'user') and request.user.is_staff:
39+
# superuser member.
40+
if hasattr(request, 'user') and request.user.is_superuser:
4041
return None
4142

4243
# Check if a path is explicitly excluded from maintenance mode
@@ -45,11 +46,4 @@ def process_request(self, request):
4546
return None
4647

4748
# Otherwise show the user the 503 page
48-
resolver = urlresolvers.get_resolver(None)
49-
50-
if django.VERSION < (1, 8):
51-
callback, param_dict = resolver._resolve_special('503')
52-
else:
53-
callback, param_dict = resolver.resolve_error_handler('503')
54-
55-
return callback(request, **param_dict)
49+
return HttpResponseTemporaryUnavailable()

0 commit comments

Comments
 (0)