diff --git a/django/contrib/auth/admin.py b/django/contrib/auth/admin.py index 04a91b6295..63c3aaaa78 100644 --- a/django/contrib/auth/admin.py +++ b/django/contrib/auth/admin.py @@ -130,7 +130,7 @@ class UserAdmin(admin.ModelAdmin): if form.is_valid(): form.save() change_message = self.construct_change_message(request, form, None) - self.log_change(request, request.user, change_message) + self.log_change(request, user, change_message) msg = ugettext('Password changed successfully.') messages.success(request, msg) update_session_auth_hash(request, form.user) diff --git a/django/contrib/auth/tests/test_views.py b/django/contrib/auth/tests/test_views.py index 27de1e26b4..a4d4702b88 100644 --- a/django/contrib/auth/tests/test_views.py +++ b/django/contrib/auth/tests/test_views.py @@ -867,3 +867,15 @@ class ChangelistTests(AuthViewsTestCase): self.assertEqual(row.change_message, 'Changed password.') self.logout() self.login(password='password1') + + def test_user_change_different_user_password(self): + u = User.objects.get(email='staffmember@example.com') + response = self.client.post('/admin/auth/user/%s/password/' % u.pk, { + 'password1': 'password1', + 'password2': 'password1', + }) + self.assertRedirects(response, '/admin/auth/user/%s/' % u.pk) + row = LogEntry.objects.latest('id') + self.assertEqual(row.user_id, self.admin.pk) + self.assertEqual(row.object_id, str(u.pk)) + self.assertEqual(row.change_message, 'Changed password.') diff --git a/docs/releases/1.6.4.txt b/docs/releases/1.6.4.txt index fd36b21271..58fb42cb43 100644 --- a/docs/releases/1.6.4.txt +++ b/docs/releases/1.6.4.txt @@ -15,4 +15,8 @@ Bugfixes * Restored the ability to :meth:`~django.core.urlresolvers.reverse` views created using :func:`functools.partial()` - (`#22486 `_) + (`#22486 `_). + +* Fixed the ``object_id`` of the ``LogEntry`` that's created after a user + password change in the admin + (`#22515 `_).