middleware: collect IP adresses only for non-empty sessions (fixes #24419)

This commit is contained in:
Benjamin Dauvergne 2018-06-11 10:45:36 +02:00
parent 183c0c266f
commit f259b0f003
1 changed files with 6 additions and 1 deletions

View File

@ -89,13 +89,18 @@ class LoggingCollectorMiddleware(object):
request.exception = exception
class CollectIPMiddleware(object):
def process_request(self, request):
def process_response(self, request, response):
# only collect IP if session is used
if request.session.is_empty():
return response
ips = set(request.session.setdefault('ips', []))
ip = request.META.get('REMOTE_ADDR', None)
if ip and ip not in ips:
ips.add(ip)
request.session['ips'] = list(ips)
request.session.modified = True
return response
class OpenedSessionCookieMiddleware(object):
def process_response(self, request, response):