Skip to content

Commit 57a52ae

Browse files
authored
Update signal to get user and add force_login to test (soynatan#136)
1 parent 1a183cc commit 57a52ae

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

easyaudit/signals/request_signals.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from django.conf import settings
77
from django.utils.module_loading import import_string
88

9+
from easyaudit.middleware.easyaudit import get_current_user
910
from easyaudit.settings import REMOTE_ADDR_HEADER, UNREGISTERED_URLS, REGISTERED_URLS, WATCH_REQUEST_EVENTS, \
1011
LOGGING_BACKEND
1112

@@ -37,9 +38,10 @@ def request_started_handler(sender, environ, **kwargs):
3738
if not should_log_url(environ['PATH_INFO']):
3839
return
3940

41+
# try and get the user from the request
42+
user = get_current_user()
4043
# get the user from cookies
41-
user = None
42-
if environ.get('HTTP_COOKIE'):
44+
if not user and environ.get('HTTP_COOKIE'):
4345
cookie = SimpleCookie() # python3 compatibility
4446
cookie.load(environ['HTTP_COOKIE'])
4547

easyaudit/tests/test_app/tests.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import re
44

55
from django.test import TestCase, override_settings
6+
from unittest.mock import patch
67

78
from django.urls import reverse
89

@@ -135,6 +136,16 @@ def test_manual_set_user(self):
135136
crud_event = crud_event_qs[0]
136137
self.assertEqual(crud_event.user, None)
137138

139+
def test_middleware_logged_in_user_in_request(self):
140+
user = self._setup_user(TEST_USER_EMAIL, TEST_USER_PASSWORD)
141+
self.client.force_login(user)
142+
create_obj_url = reverse("test_app:create-obj")
143+
self.client.post(create_obj_url)
144+
self.assertEqual(TestModel.objects.count(), 1)
145+
obj = TestModel.objects.all()[0]
146+
crud_event = CRUDEvent.objects.filter(object_id=obj.id, content_type=ContentType.objects.get_for_model(obj))[0]
147+
self.assertEqual(crud_event.user, user)
148+
138149

139150
@override_settings(TEST=True)
140151
class TestAuditAdmin(TestCase):

0 commit comments

Comments
 (0)