Fixed #8716: correctly handle name and email in comments from authenticated users.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@8751 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
eebc7caa63
commit
ae72e25b35
|
@ -36,9 +36,9 @@ def post_comment(request, next=None):
|
||||||
# Fill out some initial data fields from an authenticated user, if present
|
# Fill out some initial data fields from an authenticated user, if present
|
||||||
data = request.POST.copy()
|
data = request.POST.copy()
|
||||||
if request.user.is_authenticated():
|
if request.user.is_authenticated():
|
||||||
if "name" not in data:
|
if not data.get('name', ''):
|
||||||
data["name"] = request.user.get_full_name()
|
data["name"] = request.user.get_full_name()
|
||||||
if "email" not in data:
|
if not data.get('email', ''):
|
||||||
data["email"] = request.user.email
|
data["email"] = request.user.email
|
||||||
|
|
||||||
# Look up the object we're trying to comment about
|
# Look up the object we're trying to comment about
|
||||||
|
|
|
@ -37,7 +37,10 @@
|
||||||
"pk" : 100,
|
"pk" : 100,
|
||||||
"fields" : {
|
"fields" : {
|
||||||
"username" : "normaluser",
|
"username" : "normaluser",
|
||||||
"password" : "34ea4aaaf24efcbb4b30d27302f8657f"
|
"password" : "34ea4aaaf24efcbb4b30d27302f8657f",
|
||||||
|
"first_name": "Joe",
|
||||||
|
"last_name": "Normal",
|
||||||
|
"email": "joe.normal@example.com"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.contrib.auth.models import User
|
||||||
from django.contrib.comments import signals
|
from django.contrib.comments import signals
|
||||||
from django.contrib.comments.models import Comment
|
from django.contrib.comments.models import Comment
|
||||||
from regressiontests.comment_tests.models import Article
|
from regressiontests.comment_tests.models import Article
|
||||||
|
@ -84,6 +85,21 @@ class CommentViewTests(CommentTestCase):
|
||||||
c = Comment.objects.all()[0]
|
c = Comment.objects.all()[0]
|
||||||
self.assertEqual(c.ip_address, "1.2.3.4")
|
self.assertEqual(c.ip_address, "1.2.3.4")
|
||||||
self.assertEqual(c.comment, "This is my comment")
|
self.assertEqual(c.comment, "This is my comment")
|
||||||
|
|
||||||
|
def testPostAsAuthenticatedUser(self):
|
||||||
|
a = Article.objects.get(pk=1)
|
||||||
|
data = self.getValidData(a)
|
||||||
|
data['name'] = data['email'] = ''
|
||||||
|
self.client.login(username="normaluser", password="normaluser")
|
||||||
|
self.response = self.client.post("/post/", data, REMOTE_ADDR="1.2.3.4")
|
||||||
|
self.assertEqual(self.response.status_code, 302)
|
||||||
|
self.assertEqual(Comment.objects.count(), 1)
|
||||||
|
c = Comment.objects.all()[0]
|
||||||
|
self.assertEqual(c.ip_address, "1.2.3.4")
|
||||||
|
u = User.objects.get(username='normaluser')
|
||||||
|
self.assertEqual(c.user, u)
|
||||||
|
self.assertEqual(c.user_name, u.get_full_name())
|
||||||
|
self.assertEqual(c.user_email, u.email)
|
||||||
|
|
||||||
def testPreventDuplicateComments(self):
|
def testPreventDuplicateComments(self):
|
||||||
"""Prevent posting the exact same comment twice"""
|
"""Prevent posting the exact same comment twice"""
|
||||||
|
|
Loading…
Reference in New Issue