Skip to content

Commit 7f607c5

Browse files
committed
Changed from old-style to new-style middleware.
- Legacy-Id: 12824
1 parent a1606e8 commit 7f607c5

4 files changed

Lines changed: 31 additions & 30 deletions

File tree

ietf/middleware.py

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,44 +9,38 @@
99
import smtplib
1010
import unicodedata
1111

12-
# old-style middleware
13-
class SQLLogMiddleware(object):
14-
def process_response(self, request, response):
15-
for q in connection.queries:
16-
if re.match('(update|insert)', q['sql'], re.IGNORECASE):
17-
log(q['sql'])
18-
return response
1912

20-
# new-style middleware
21-
def sql_log_middleware_factory(get_response):
22-
def sql_log_middleware(request):
13+
def sql_log_middleware(get_response):
14+
def sql_log(request):
2315
response = get_response(request)
2416
for q in connection.queries:
2517
if re.match('(update|insert)', q['sql'], re.IGNORECASE):
2618
log(q['sql'])
2719
return response
20+
return sql_log
2821

2922
class SMTPExceptionMiddleware(object):
23+
def __init__(self, get_response):
24+
self.get_response = get_response
25+
def __call__(self, request):
26+
return self.get_response(request)
3027
def process_exception(self, request, exception):
3128
if isinstance(exception, smtplib.SMTPException):
3229
(extype, value, tb) = log_smtp_exception(exception)
3330
return render(request, 'email_failed.html',
3431
{'exception': extype, 'args': value, 'traceback': "".join(tb)} )
3532
return None
3633

37-
def smtp_exception_middleware_factory(get_response):
38-
def smtp_exception_middleware(request):
34+
def redirect_trailing_period_middleware(get_response):
35+
def redirect_trailing_period(request):
3936
response = get_response(request)
40-
return response
41-
42-
class RedirectTrailingPeriod(object):
43-
def process_response(self, request, response):
4437
if response.status_code == 404 and request.path.endswith("."):
4538
return HttpResponsePermanentRedirect(request.path.rstrip("."))
4639
return response
40+
return redirect_trailing_period
4741

48-
class UnicodeNfkcNormalization(object):
49-
def process_request(self, request):
42+
def unicode_nfkc_normalization_middleware(get_response):
43+
def unicode_nfkc_normalization(request):
5044
"""Do Unicode NFKC normalization to turn ligatures into individual characters.
5145
This was prompted by somebody actually requesting an url for /wg/ipfix/charter
5246
where the 'fi' was composed of an \ufb01 ligature...
@@ -56,4 +50,7 @@ def process_request(self, request):
5650
"""
5751
request.META["PATH_INFO"] = unicodedata.normalize('NFKC', request.META["PATH_INFO"])
5852
request.path_info = unicodedata.normalize('NFKC', request.path_info)
59-
return None
53+
response = get_response(request)
54+
return response
55+
return unicode_nfkc_normalization
56+

ietf/settings.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
)
5252

5353
PASSWORD_HASHERS = [
54+
'django.contrib.auth.hashers.Argon2PasswordHasher',
5455
'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
5556
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
5657
'django.contrib.auth.hashers.SHA1PasswordHasher',
@@ -79,7 +80,7 @@
7980
'ENGINE': 'django.db.backends.mysql',
8081
'USER': 'ietf',
8182
#'PASSWORD': 'ietf',
82-
#'OPTIONS': {},
83+
'OPTIONS': {'sql_mode': 'STRICT_TRANS_TABLES', },
8384
},
8485
}
8586

@@ -261,19 +262,19 @@ def skip_unreadable_post(record):
261262
TEMPLATES[0]['OPTIONS']['string_if_invalid'] = "** No value found for '%s' **"
262263

263264

264-
MIDDLEWARE_CLASSES = (
265+
MIDDLEWARE = (
265266
'django.middleware.csrf.CsrfViewMiddleware',
266267
'django.middleware.common.CommonMiddleware',
267268
'django.contrib.sessions.middleware.SessionMiddleware',
268269
'django.contrib.auth.middleware.AuthenticationMiddleware',
269270
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
270271
'django.contrib.messages.middleware.MessageMiddleware',
271272
'django.middleware.http.ConditionalGetMiddleware',
272-
'ietf.middleware.SQLLogMiddleware',
273+
'ietf.middleware.sql_log_middleware',
273274
'ietf.middleware.SMTPExceptionMiddleware',
274-
'ietf.middleware.RedirectTrailingPeriod',
275+
'ietf.middleware.redirect_trailing_period_middleware',
275276
'django.middleware.clickjacking.XFrameOptionsMiddleware',
276-
'ietf.middleware.UnicodeNfkcNormalization',
277+
'ietf.middleware.unicode_nfkc_normalization_middleware',
277278
)
278279

279280
ROOT_URLCONF = 'ietf.urls'
@@ -298,6 +299,7 @@ def skip_unreadable_post(record):
298299
'django.contrib.sites',
299300
'django.contrib.staticfiles',
300301
# External apps
302+
'anora',
301303
'bootstrap3',
302304
'django_markup',
303305
'django_password_strength',
@@ -674,7 +676,7 @@ def skip_unreadable_post(record):
674676
# Set debug apps in settings_local.DEV_APPS
675677

676678
DEV_APPS = ()
677-
DEV_MIDDLEWARE_CLASSES = ()
679+
DEV_MIDDLEWARE = ()
678680

679681
# django-debug-toolbar and the debug listing of sql queries at the bottom of
680682
# each page when in dev mode can overlap in functionality, and can slow down
@@ -798,7 +800,7 @@ def skip_unreadable_post(record):
798800

799801
# Add DEV_APPS to INSTALLED_APPS
800802
INSTALLED_APPS += DEV_APPS
801-
MIDDLEWARE_CLASSES += DEV_MIDDLEWARE_CLASSES
803+
MIDDLEWARE += DEV_MIDDLEWARE
802804
TEMPLATES[0]['OPTIONS']['context_processors'] += DEV_TEMPLATE_CONTEXT_PROCESSORS
803805

804806

ietf/settings_sqlitetest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,6 @@ def __getitem__(self, item):
5050
PHOTOS_DIR = MEDIA_ROOT + PHOTOS_DIRNAME # pyflakes:ignore
5151

5252
# Undo any developer-dependent middleware when running the tests
53-
MIDDLEWARE_CLASSES = [ c for c in MIDDLEWARE_CLASSES if not c in DEV_MIDDLEWARE_CLASSES ] # pyflakes:ignore
53+
MIDDLEWARE = [ c for c in MIDDLEWARE if not c in DEV_MIDDLEWARE ] # pyflakes:ignore
5454

5555
TEMPLATES[0]['OPTIONS']['context_processors'] = [ p for p in TEMPLATES[0]['OPTIONS']['context_processors'] if not p in DEV_TEMPLATE_CONTEXT_PROCESSORS ] # pyflakes:ignore

ietf/utils/test_runner.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,13 @@ def load_template_source(self, template_name, dirs):
122122
raise TemplateDoesNotExist(template_name)
123123
load_template_source.is_usable = True
124124

125-
class RecordUrlsMiddleware(object):
126-
def process_request(self, request):
125+
def record_urls_middleware(get_response):
126+
def record_urls(request):
127127
global url_coverage_collection, visited_urls
128128
if url_coverage_collection == True:
129129
visited_urls.add(request.path)
130+
return get_response(request)
131+
return record_urls
130132

131133
def get_url_patterns(module, apps=None):
132134
def include(name):
@@ -403,7 +405,7 @@ def setup_test_environment(self, **kwargs):
403405

404406
settings.TEMPLATES[0]['OPTIONS']['loaders'] = ('ietf.utils.test_runner.TemplateCoverageLoader',) + settings.TEMPLATES[0]['OPTIONS']['loaders']
405407

406-
settings.MIDDLEWARE_CLASSES = ('ietf.utils.test_runner.RecordUrlsMiddleware',) + tuple(settings.MIDDLEWARE_CLASSES)
408+
settings.MIDDLEWARE = ('ietf.utils.test_runner.record_urls_middleware',) + tuple(settings.MIDDLEWARE)
407409
url_coverage_collection = True
408410

409411
self.code_coverage_checker = settings.TEST_CODE_COVERAGE_CHECKER

0 commit comments

Comments
 (0)