From c3b774fcaacd26a744c39f84b6c2bfbe080ff190 Mon Sep 17 00:00:00 2001 From: Jorran de Wit <jorrandewit@outlook.com> Date: Sun, 9 Apr 2017 10:29:08 +0200 Subject: [PATCH] Fix: submissions with non-public status might be publicly accessible --- .../scipost/assets/css/scipost-physics.scss | 4 ++-- scipost/views.py | 3 +-- submissions/managers.py | 2 +- submissions/views.py | 22 ++++++------------- 4 files changed, 11 insertions(+), 20 deletions(-) diff --git a/scipost/static/scipost/assets/css/scipost-physics.scss b/scipost/static/scipost/assets/css/scipost-physics.scss index d0d2f46ec..2ef6f06c4 100644 --- a/scipost/static/scipost/assets/css/scipost-physics.scss +++ b/scipost/static/scipost/assets/css/scipost-physics.scss @@ -17,8 +17,8 @@ display: block; &.active { - border: 1px solid #6885c3; - color: #6885c3; + color: #002b49; + background: rgba(255, 255, 255, 0.5); } } } diff --git a/scipost/views.py b/scipost/views.py index 6ba474479..0e2fd0e17 100644 --- a/scipost/views.py +++ b/scipost/views.py @@ -122,9 +122,8 @@ def documentsSearchResults(query): commentary_query, vetted=True, ).order_by('-pub_date') - submission_search_queryset = Submission.objects.filter( + submission_search_queryset = Submission.objects.public().filter( submission_query, - ).exclude(status__in=SUBMISSION_STATUS_PUBLICLY_UNLISTED, ).order_by('-submission_date') thesislink_search_list = ThesisLink.objects.filter( thesislink_query, diff --git a/submissions/managers.py b/submissions/managers.py index 01249dd9d..9346d76a5 100644 --- a/submissions/managers.py +++ b/submissions/managers.py @@ -14,7 +14,7 @@ class SubmissionManager(models.Manager): .order_by('-submission_date') def public(self): - return self.exclude(status__in=SUBMISSION_STATUS_PUBLICLY_UNLISTED) + return self.filter(is_current=True).exclude(status__in=SUBMISSION_STATUS_PUBLICLY_UNLISTED) class EditorialAssignmentManager(models.Manager): diff --git a/submissions/views.py b/submissions/views.py index 2e28d88ef..b82aeebb2 100644 --- a/submissions/views.py +++ b/submissions/views.py @@ -208,34 +208,26 @@ class SubmissionListView(ListView): paginate_by = 10 def get_queryset(self): + queryset = Submission.objects.public() if 'to_journal' in self.kwargs: - queryset = Submission.objects.filter( + queryset = queryset.filter( latest_activity__gte=timezone.now() + datetime.timedelta(days=-60), submitted_to_journal=self.kwargs['to_journal'] - ).exclude(status__in=SUBMISSION_STATUS_PUBLICLY_UNLISTED - ).exclude(is_current=False).order_by('-submission_date') - # Submission.objects.filter(submitted_to_journal=self.kwargs['to_journal']) + ) elif 'discipline' in self.kwargs and 'nrweeksback' in self.kwargs: discipline = self.kwargs['discipline'] nrweeksback = self.kwargs['nrweeksback'] - queryset = Submission.objects.filter( + queryset = queryset.filter( discipline=discipline, latest_activity__gte=timezone.now() + datetime.timedelta(weeks=-int(nrweeksback))) elif 'Submit' in self.request.GET: - queryset = Submission.objects.filter( + queryset = queryset.filter( title__icontains=self.request.GET.get('title_keyword', ''), author_list__icontains=self.request.GET.get('author', ''), abstract__icontains=self.request.GET.get('abstract_keyword', '') ) - else: - queryset = Submission.objects.filter( - latest_activity__gte=timezone.now() + datetime.timedelta(days=-60) - ).exclude(status__in=SUBMISSION_STATUS_PUBLICLY_UNLISTED - ).exclude(is_current=False).order_by('-submission_date') - - queryset = queryset.exclude(status__in=SUBMISSION_STATUS_PUBLICLY_UNLISTED, - ).order_by('-submission_date') - return queryset + + return queryset.order_by('-submission_date') def get_context_data(self, **kwargs): # Call the base implementation first to get a context -- GitLab