From f9008f9eb8f9403552a510d3b228a10fa18171bf Mon Sep 17 00:00:00 2001
From: Geert Kapteijns <ghkapteijns@gmail.com>
Date: Thu, 18 May 2017 18:36:51 +0200
Subject: [PATCH] Raise 404 when trying to access detail page of commentary
 that is not vetted.

---
 commentaries/test_views.py | 6 ++++++
 commentaries/views.py      | 3 +++
 2 files changed, 9 insertions(+)

diff --git a/commentaries/test_views.py b/commentaries/test_views.py
index dbb0bb6c6..f2c7460a7 100644
--- a/commentaries/test_views.py
+++ b/commentaries/test_views.py
@@ -160,3 +160,9 @@ class CommentaryDetailTest(TestCase):
     def test_status_code_200(self):
         response = self.client.get(self.target)
         self.assertEqual(response.status_code, 200)
+
+    def test_unvetted_commentary(self):
+        commentary = UnvettedCommentaryFactory(requested_by=ContributorFactory())
+        target = reverse('commentaries:commentary', kwargs={'arxiv_or_DOI_string': commentary.arxiv_or_DOI_string})
+        response = self.client.get(target)
+        self.assertEqual(response.status_code, 404)
diff --git a/commentaries/views.py b/commentaries/views.py
index 4c50ca0eb..e95b4915e 100644
--- a/commentaries/views.py
+++ b/commentaries/views.py
@@ -206,6 +206,9 @@ class CommentaryListView(ListView):
 
 def commentary_detail(request, arxiv_or_DOI_string):
     commentary = get_object_or_404(Commentary, arxiv_or_DOI_string=arxiv_or_DOI_string)
+    if not commentary.vetted:
+        raise Http404
+
     comments = commentary.comment_set.all()
     form = CommentForm()
     try:
-- 
GitLab