From 8dccaa6f3b328612dc1173ff35496e325145d6de Mon Sep 17 00:00:00 2001
From: "J.-S. Caux" <J.S.Caux@uva.nl>
Date: Tue, 6 Dec 2016 09:10:12 +0100
Subject: [PATCH] Improve manuscript rejection process

---
 submissions/utils.py | 20 +++++++++++++-------
 submissions/views.py |  7 +++++++
 2 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/submissions/utils.py b/submissions/utils.py
index 470d9df46..68057a9a9 100644
--- a/submissions/utils.py
+++ b/submissions/utils.py
@@ -1158,8 +1158,11 @@ class SubmissionUtils(object):
                            + cls.submission.arxiv_identifier_w_vn_nr + '. '
                            'Note that these details are viewable only by '
                            'the registered authors of the submission.'
-                           '\n\nUnless you explicitly request otherwise, we will deactivate your '
-                           'Submission\'s Page within one week and remove it from public view.'
+                           #'\n\nUnless you explicitly request otherwise, we will deactivate your '
+                           #'Submission\'s Page within one week and remove it from public view.'
+                           '\n\nThis Submission Page has now been removed '
+                           'from general public view; if you wish, you can email us and '
+                           'request to make it publicly visible again.'
             )
             email_text_html += (
                 '<p>We are sorry to inform you that your Submission '
@@ -1169,15 +1172,18 @@ class SubmissionUtils(object):
                 '{{ arxiv_identifier_w_vn_nr }}">Submission\'s Page</a>. '
                 'Note that these details are viewable only by '
                 'the registered authors of the submission.</p>'
-                '<p>Unless you explicitly request otherwise, we will deactivate your '
-                'Submission\'s Page within one week and remove it from public view.</p>'
+                #'<p>Unless you explicitly request otherwise, we will deactivate your '
+                #'Submission\'s Page within one week and remove it from public view.</p>'
+                '<p>This Submission Page has now been removed '
+                'from general public view; if you wish, you can email us and '
+                'request to make it publicly visible again.</p>'
             )
         email_text += ('\n\nWe thank you very much for your contribution.'
                        '\n\nSincerely,'
                        '\n\nThe SciPost Team.')
-        email_text += ('\n<p>We thank you very much for your contribution.</p>'
-                       '<p>Sincerely,</p>'
-                       '<p>The SciPost Team.</p>')
+        email_text_html += ('\n<p>We thank you very much for your contribution.</p>'
+                            '<p>Sincerely,</p>'
+                            '<p>The SciPost Team.</p>')
         email_context = Context({
             'auth_title': title_dict[cls.submission.submitted_by.title],
             'auth_last_name': cls.submission.submitted_by.user.last_name,
diff --git a/submissions/views.py b/submissions/views.py
index f3e64b81f..9bdd3c7be 100644
--- a/submissions/views.py
+++ b/submissions/views.py
@@ -7,6 +7,7 @@ import sys
 from django.contrib.auth import authenticate, login, logout
 from django.contrib.auth.decorators import login_required, permission_required
 from django.contrib.auth.models import User, Group, Permission
+from django.core.exceptions import PermissionDenied
 from django.core.mail import EmailMessage
 from django.core.urlresolvers import reverse
 from django.db import transaction
@@ -343,6 +344,12 @@ def submission_detail_wo_vn_nr(request, arxiv_identifier_wo_vn_nr):
 
 def submission_detail(request, arxiv_identifier_w_vn_nr):
     submission = get_object_or_404(Submission, arxiv_identifier_w_vn_nr=arxiv_identifier_w_vn_nr)
+    if (submission.status in SUBMISSION_STATUS_PUBLICLY_UNLISTED
+        and not request.user.groups.filter(name='SciPost Administrators').exists()
+        and not request.user.groups.filter(name='Editorial Administrators').exists()
+        and not request.user.groups.filter(name='Editorial College').exists()
+    ):
+        raise PermissionDenied
     other_versions = Submission.objects.filter(
         arxiv_identifier_wo_vn_nr=submission.arxiv_identifier_wo_vn_nr
     ).exclude(pk=submission.id)
-- 
GitLab