mirror of
https://github.com/jazzband/django-auditlog.git
synced 2026-03-16 22:20:26 +00:00
Update auditlog/middleware.py and add tests in ManyRelatedModelTest
This commit is contained in:
parent
3821e2ec60
commit
cef0a4ef78
2 changed files with 16 additions and 11 deletions
|
|
@ -15,10 +15,12 @@ class AuditlogMiddleware:
|
|||
self.get_response = get_response
|
||||
if not isinstance(settings.AUDITLOG_DISABLE_REMOTE_ADDR, bool):
|
||||
raise TypeError("Setting 'AUDITLOG_DISABLE_REMOTE_ADDR' must be a boolean")
|
||||
self.disable_remote_addr = settings.AUDITLOG_DISABLE_REMOTE_ADDR
|
||||
|
||||
@staticmethod
|
||||
def _get_remote_addr(request):
|
||||
if settings.AUDITLOG_DISABLE_REMOTE_ADDR:
|
||||
return None
|
||||
|
||||
# In case there is no proxy, return the original address
|
||||
if not request.headers.get("X-Forwarded-For"):
|
||||
return request.META.get("REMOTE_ADDR")
|
||||
|
|
@ -42,10 +44,7 @@ class AuditlogMiddleware:
|
|||
return None
|
||||
|
||||
def __call__(self, request):
|
||||
if self.disable_remote_addr:
|
||||
remote_addr = None
|
||||
else:
|
||||
remote_addr = self._get_remote_addr(request)
|
||||
remote_addr = self._get_remote_addr(request)
|
||||
user = self._get_actor(request)
|
||||
|
||||
set_cid(request)
|
||||
|
|
|
|||
|
|
@ -513,6 +513,18 @@ class MiddlewareTest(TestCase):
|
|||
|
||||
self.assert_no_listeners()
|
||||
|
||||
def test_init_middleware(self):
|
||||
with override_settings(AUDITLOG_DISABLE_REMOTE_ADDR="str"):
|
||||
with self.assertRaisesMessage(TypeError, "Setting 'AUDITLOG_DISABLE_REMOTE_ADDR' must be a boolean"):
|
||||
AuditlogMiddleware()
|
||||
|
||||
def test_disable_remote_addr(self):
|
||||
with override_settings(AUDITLOG_DISABLE_REMOTE_ADDR=True):
|
||||
headers = {"HTTP_X_FORWARDED_FOR": "127.0.0.2"}
|
||||
request = self.factory.get("/", **headers)
|
||||
remote_addr = self.middleware._get_remote_addr(request)
|
||||
self.assertIsNone(remote_addr)
|
||||
|
||||
def test_get_remote_addr(self):
|
||||
tests = [ # (headers, expected_remote_addr)
|
||||
({}, "127.0.0.1"),
|
||||
|
|
@ -1273,12 +1285,6 @@ class RegisterModelSettingsTest(TestCase):
|
|||
):
|
||||
self.test_auditlog.register_from_settings()
|
||||
|
||||
with override_settings(AUDITLOG_DISABLE_REMOTE_ADDR="str"):
|
||||
with self.assertRaisesMessage(
|
||||
TypeError, "Setting 'AUDITLOG_DISABLE_REMOTE_ADDR' must be a boolean"
|
||||
):
|
||||
self.test_auditlog.register_from_settings()
|
||||
|
||||
@override_settings(
|
||||
AUDITLOG_INCLUDE_ALL_MODELS=True,
|
||||
AUDITLOG_EXCLUDE_TRACKING_MODELS=("auditlog_tests.SimpleExcludeModel",),
|
||||
|
|
|
|||
Loading…
Reference in a new issue