99import smtplib
1010import 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
2922class 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+
0 commit comments