diff --git a/easyaudit/signals/request_signals.py b/easyaudit/signals/request_signals.py index 614c811a..9901c909 100644 --- a/easyaudit/signals/request_signals.py +++ b/easyaudit/signals/request_signals.py @@ -1,4 +1,6 @@ -from django.contrib.auth import get_user_model +from importlib import import_module + +from django.contrib.auth import get_user_model, SESSION_KEY as AUTH_SESSION_KEY from django.contrib.sessions.models import Session from django.core.signals import request_started from django.http.cookie import SimpleCookie @@ -6,6 +8,8 @@ from django.conf import settings from django.utils.module_loading import import_string +session_engine = import_module(settings.SESSION_ENGINE) + # try and get the user from the request; commented for now, may have a bug in this flow. # from easyaudit.middleware.easyaudit import get_current_user from easyaudit.settings import REMOTE_ADDR_HEADER, UNREGISTERED_URLS, REGISTERED_URLS, WATCH_REQUEST_EVENTS, \ @@ -70,12 +74,12 @@ def request_started_handler(sender, **kwargs): session_id = cookie[session_cookie_name].value try: - session = Session.objects.get(session_key=session_id) + session = session_engine.SessionStore(session_key=session_id).load() except Session.DoesNotExist: session = None - if session: - user_id = session.get_decoded().get('_auth_user_id') + if session and AUTH_SESSION_KEY in session: + user_id = session.get(AUTH_SESSION_KEY) try: user = get_user_model().objects.get(id=user_id) except: