diff --git a/sphinx/websupport/__init__.py b/sphinx/websupport/__init__.py index 29a0b0eee..4812bb932 100644 --- a/sphinx/websupport/__init__.py +++ b/sphinx/websupport/__init__.py @@ -286,16 +286,20 @@ class WebSupport(object): """ self.storage.update_username(old_username, new_username) - def accept_comment(self, comment_id): + def accept_comment(self, comment_id, moderator=False): """Accept a comment that is pending moderation. :param comment_id: The id of the comment that was accepted. """ + if not moderator: + raise UserNotAuthorizedError() self.storage.accept_comment(comment_id) - def reject_comment(self, comment_id): + def reject_comment(self, comment_id, moderator=False): """Reject a comment that is pending moderation. :param comment_id: The id of the comment that was accepted. """ + if not moderator: + raise UserNotAuthorizedError() self.storage.reject_comment(comment_id) diff --git a/sphinx/websupport/storage/db.py b/sphinx/websupport/storage/db.py index ed2b3b11c..12c1e1d5e 100644 --- a/sphinx/websupport/storage/db.py +++ b/sphinx/websupport/storage/db.py @@ -142,6 +142,7 @@ class Comment(Base): 'node': node, 'parent': parent, 'rating': self.rating, + 'displayed': self.displayed, 'age': delta.seconds, 'time': time, 'vote': vote or 0, diff --git a/tests/test_websupport.py b/tests/test_websupport.py index 2db29a2e1..37f0a679e 100644 --- a/tests/test_websupport.py +++ b/tests/test_websupport.py @@ -234,8 +234,11 @@ def test_moderation(support): displayed=False) # Make sure the moderation_callback is called. assert called == True - support.accept_comment(accepted['id']) - support.reject_comment(rejected['id']) + # Make sure the user must be a moderator. + raises(UserNotAuthorizedError, support.accept_comment, accepted['id']) + raises(UserNotAuthorizedError, support.reject_comment, accepted['id']) + support.accept_comment(accepted['id'], moderator=True) + support.reject_comment(rejected['id'], moderator=True) comments = support.get_data(3)['comments'] assert len(comments) == 1 comments = support.get_data(3, moderator=True)['comments']