From dc0ce6177c7e1ed8a7968c8242da7c8ee5d5a24a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gunnlaugur=20=C3=9E=C3=B3r=20Briem?= Date: Mon, 25 Nov 2013 15:43:51 +0000 Subject: [PATCH] Capture request.user even if not Django user model Support authentication setups where the user model does not derive from Django's AbstractBaseUser or User. Instead accept duck typing and just abort capturing the user if any of the required attributes are missing. --- raven/contrib/django/client.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/raven/contrib/django/client.py b/raven/contrib/django/client.py index acc149590..e9c61bc71 100644 --- a/raven/contrib/django/client.py +++ b/raven/contrib/django/client.py @@ -50,15 +50,14 @@ def get_user_info(self, user): return user_info def get_data_from_request(self, request): - try: - from django.contrib.auth.models import AbstractBaseUser as BaseUser - except ImportError: - from django.contrib.auth.models import User as BaseUser # NOQA - result = {} - if hasattr(request, 'user') and isinstance(request.user, BaseUser): - result['sentry.interfaces.User'] = self.get_user_info(request.user) + user = getattr(request, 'user', None) + if user: + try: + result['sentry.interfaces.User'] = self.get_user_info(user) + except AttributeError: + pass try: uri = request.build_absolute_uri()