mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-04-27 03:00:12 -04:00
Allow top-level comments on deleted posts
Discussion can still be valuable and users are allowed to reply to comments in deleted posts. Notifications will not be sent to the post author.
This commit is contained in:
@@ -2061,7 +2061,7 @@ class ApiController(RedditController):
|
||||
commentform.has_errors("comment", errors.TOO_LONG) or
|
||||
commentform.has_errors("ratelimit", errors.RATELIMIT) or
|
||||
commentform.has_errors("parent", errors.DELETED_COMMENT,
|
||||
errors.DELETED_LINK, errors.TOO_OLD, errors.USER_BLOCKED,
|
||||
errors.TOO_OLD, errors.USER_BLOCKED,
|
||||
errors.USER_MUTED, errors.MUTED_FROM_SUBREDDIT,
|
||||
errors.THREAD_LOCKED)
|
||||
):
|
||||
|
||||
@@ -50,7 +50,6 @@ error_list = dict((
|
||||
('NOT_USER', _("You are not logged in as that user.")),
|
||||
('NOT_FRIEND', _("you are not friends with that user")),
|
||||
('LOGGED_IN', _("You are already logged in.")),
|
||||
('DELETED_LINK', _('the link you are commenting on has been deleted')),
|
||||
('DELETED_COMMENT', _('that comment has been deleted')),
|
||||
('DELETED_THING', _('that element has been deleted')),
|
||||
('SHORT_PASSWORD', _('the password must be at least %(chars)d characters')),
|
||||
|
||||
@@ -1264,9 +1264,6 @@ class VSubmitParent(VByName):
|
||||
elif isinstance(parent, Link):
|
||||
sr = parent.subreddit_slow
|
||||
|
||||
if parent._deleted:
|
||||
self.set_error(errors.DELETED_LINK)
|
||||
|
||||
if parent.archived:
|
||||
self.set_error(errors.TOO_OLD)
|
||||
elif parent.locked and not sr.can_distinguish(c.user):
|
||||
|
||||
@@ -1183,7 +1183,7 @@ class Comment(Thing, Printable):
|
||||
name = 'inbox'
|
||||
if parent and parent.sendreplies:
|
||||
to = Account._byID(parent.author_id, True)
|
||||
if not parent and link.sendreplies:
|
||||
if not parent and not link._deleted and link.sendreplies:
|
||||
to = Account._byID(link.author_id, True)
|
||||
name = 'selfreply'
|
||||
|
||||
|
||||
@@ -86,7 +86,6 @@
|
||||
${error_field("RATELIMIT", "ratelimit", "span")}
|
||||
${error_field("NO_TEXT", thing.name, "span")}
|
||||
${error_field("DELETED_COMMENT", "parent", "span")}
|
||||
${error_field("DELETED_LINK", "parent", "span")}
|
||||
${error_field("USER_BLOCKED", "parent", "span")}
|
||||
${error_field("USER_MUTED", "parent", "span")}
|
||||
${error_field("MUTED_FROM_SUBREDDIT", "parent", "span")}
|
||||
|
||||
@@ -162,7 +162,6 @@
|
||||
${error_field("TOO_OLD", "parent", "span")}
|
||||
${error_field("THREAD_LOCKED", "parent", "span")}
|
||||
${error_field("DELETED_COMMENT", "parent", "span")}
|
||||
${error_field("DELETED_LINK", "parent", "span")}
|
||||
${error_field("USER_BLOCKED", "parent", "span")}
|
||||
${error_field("USER_MUTED", "parent", "span")}
|
||||
${error_field("MUTED_FROM_SUBREDDIT", "parent", "span")}
|
||||
|
||||
@@ -171,14 +171,6 @@ class TestVSubmitParent(ValidatorTests):
|
||||
self.assertEqual(result, link)
|
||||
self.assertFalse(self.validator.has_errors)
|
||||
|
||||
def test_deleted_link(self):
|
||||
link = self._mock_link(_deleted=True)
|
||||
result = self.validator.run('fullname', None)
|
||||
|
||||
self.assertEqual(result, link)
|
||||
self.assertTrue(self.validator.has_errors)
|
||||
self.assertIn((errors.DELETED_LINK, None), c.errors)
|
||||
|
||||
def test_removed_link(self):
|
||||
link = self._mock_link(_spam=True)
|
||||
result = self.validator.run('fullname', None)
|
||||
@@ -194,17 +186,6 @@ class TestVSubmitParent(ValidatorTests):
|
||||
self.assertTrue(self.validator.has_errors)
|
||||
self.assertIn((errors.TOO_OLD, None), c.errors)
|
||||
|
||||
def test_deleted_archived_link(self):
|
||||
link = self._mock_link(
|
||||
date=dt.now(g.tz).replace(year=2000),
|
||||
_deleted=True)
|
||||
result = self.validator.run('fullname', None)
|
||||
|
||||
self.assertEqual(result, link)
|
||||
self.assertTrue(self.validator.has_errors)
|
||||
self.assertIn((errors.DELETED_LINK, None), c.errors)
|
||||
self.assertIn((errors.TOO_OLD, None), c.errors)
|
||||
|
||||
def test_locked_link(self):
|
||||
link = self._mock_link(locked=True)
|
||||
Subreddit.can_distinguish = MagicMock(return_value=False)
|
||||
@@ -222,16 +203,6 @@ class TestVSubmitParent(ValidatorTests):
|
||||
self.assertEqual(result, link)
|
||||
self.assertFalse(self.validator.has_errors)
|
||||
|
||||
def test_deleted_locked_link(self):
|
||||
link = self._mock_link(locked=True, _deleted=True)
|
||||
Subreddit.can_distinguish = MagicMock(return_value=False)
|
||||
result = self.validator.run('fullname', None)
|
||||
|
||||
self.assertEqual(result, link)
|
||||
self.assertTrue(self.validator.has_errors)
|
||||
self.assertIn((errors.DELETED_LINK, None), c.errors)
|
||||
self.assertIn((errors.THREAD_LOCKED, None), c.errors)
|
||||
|
||||
def test_invalid_link(self):
|
||||
with self.assertRaises(HTTPForbidden):
|
||||
self._mock_link(can_comment=False)
|
||||
|
||||
Reference in New Issue
Block a user