1
0
mirror of https://github.com/django/django.git synced 2025-10-24 06:06:09 +00:00

Fixed #30037 -- Added request arg to RemoteUserBackend.configure_user().

This commit is contained in:
Joshua Cannon
2018-12-13 10:14:03 -06:00
committed by Tim Graham
parent 4ca2820ff5
commit db1b10ef0d
7 changed files with 100 additions and 9 deletions

View File

@@ -15,6 +15,7 @@ class RemoteUserTest(TestCase):
middleware = 'django.contrib.auth.middleware.RemoteUserMiddleware'
backend = 'django.contrib.auth.backends.RemoteUserBackend'
header = 'REMOTE_USER'
email_header = 'REMOTE_EMAIL'
# Usernames to be passed in REMOTE_USER for the test_known_user test case.
known_user = 'knownuser'
@@ -192,11 +193,11 @@ class CustomRemoteUserBackend(RemoteUserBackend):
"""
return username.split('@')[0]
def configure_user(self, user):
def configure_user(self, request, user):
"""
Sets user's email address.
Sets user's email address using the email specified in an HTTP header.
"""
user.email = 'user@example.com'
user.email = request.META.get(RemoteUserTest.email_header, '')
user.save()
return user
@@ -224,9 +225,17 @@ class RemoteUserCustomTest(RemoteUserTest):
def test_unknown_user(self):
"""
The unknown user created should be configured with an email address.
The unknown user created should be configured with an email address
provided in the request header.
"""
super().test_unknown_user()
num_users = User.objects.count()
response = self.client.get('/remote_user/', **{
self.header: 'newuser',
self.email_header: 'user@example.com',
})
self.assertEqual(response.context['user'].username, 'newuser')
self.assertEqual(response.context['user'].email, 'user@example.com')
self.assertEqual(User.objects.count(), num_users + 1)
newuser = User.objects.get(username='newuser')
self.assertEqual(newuser.email, 'user@example.com')