Skip to content

Commit 88d1b14

Browse files
Peter Bengtssonglogiotatidis
authored andcommitted
don't assume request.user (#34)
* don't assume request.user * actually test that it worked
1 parent 167208e commit 88d1b14

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

session_csrf/__init__.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,13 @@ def prep_key(key):
3939

4040

4141
def is_user_authenticated(request):
42+
user = getattr(request, 'user', None)
43+
if not user:
44+
return False
4245
if DJANGO_VERSION < (1, 10, 0):
43-
return request.user.is_authenticated()
46+
return user.is_authenticated()
4447
else:
45-
return request.user.is_authenticated
48+
return user.is_authenticated
4649

4750
# Inherit from deprecation.MiddlewareMixin to ensure it works
4851
# with the new style middleware in Django 1.10 - see

session_csrf/tests.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,13 @@ def test_csrf_token_context_processor(self):
163163
ctx.update(processor(request))
164164
self.assertEqual(ctx['csrf_token'], self.token)
165165

166+
def test_process_view_without_authentication_middleware(self):
167+
# No request.user
168+
# Same as would happen if you never use the built-in
169+
# AuthenticationMiddleware.
170+
request = self.rf.get('/')
171+
self.assertEqual(self.mw.process_request(request), None)
172+
166173

167174
class TestAnonymousCsrf(django.test.TestCase):
168175
urls = 'session_csrf.tests'

0 commit comments

Comments
 (0)