Commit ae72e25b authored by Jacob Kaplan-Moss's avatar Jacob Kaplan-Moss
Browse files

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
parent eebc7caa
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -36,9 +36,9 @@ def post_comment(request, next=None):
    # Fill out some initial data fields from an authenticated user, if present
    data = request.POST.copy()
    if request.user.is_authenticated():
        if "name" not in data:
        if not data.get('name', ''):
            data["name"] = request.user.get_full_name()
        if "email" not in data:
        if not data.get('email', ''):
            data["email"] = request.user.email

    # Look up the object we're trying to comment about
+4 −1
Original line number Diff line number Diff line
@@ -37,7 +37,10 @@
    "pk" : 100,
    "fields" : {
        "username" : "normaluser",
        "password" : "34ea4aaaf24efcbb4b30d27302f8657f"
        "password" : "34ea4aaaf24efcbb4b30d27302f8657f",
        "first_name": "Joe",
        "last_name": "Normal",
        "email": "joe.normal@example.com"
    }
  }
]
+16 −0
Original line number Diff line number Diff line
from django.conf import settings
from django.contrib.auth.models import User
from django.contrib.comments import signals
from django.contrib.comments.models import Comment
from regressiontests.comment_tests.models import Article
@@ -85,6 +86,21 @@ class CommentViewTests(CommentTestCase):
        self.assertEqual(c.ip_address, "1.2.3.4")
        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):
        """Prevent posting the exact same comment twice"""
        a = Article.objects.get(pk=1)