Skip to content

Commit 007d7d2

Browse files
committed
Allow Secretariat to submit drafts during blackout period. Fixes ietf-tools#1755. Commit ready for merge.
- Legacy-Id: 9821
1 parent 39fd739 commit 007d7d2

3 files changed

Lines changed: 34 additions & 4 deletions

File tree

ietf/submit/forms.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@
99

1010
import debug # pyflakes:ignore
1111

12-
from ietf.group.models import Group
1312
from ietf.doc.models import Document
13+
from ietf.group.models import Group
14+
from ietf.ietfauth.utils import has_role
1415
from ietf.meeting.models import Meeting
1516
from ietf.submit.models import Submission, Preapproval
1617
from ietf.submit.utils import validate_submission_rev, validate_submission_document_date
@@ -32,6 +33,7 @@ def __init__(self, request, *args, **kwargs):
3233

3334
self.remote_ip = request.META.get('REMOTE_ADDR', None)
3435

36+
self.request = request
3537
self.in_first_cut_off = False
3638
self.cutoff_warning = ""
3739
self.shutdown = False
@@ -104,7 +106,7 @@ def clean_xml(self):
104106
return self.clean_file("xml", XMLParser)
105107

106108
def clean(self):
107-
if self.shutdown:
109+
if self.shutdown and not has_role(self.request.user, "Secretariat"):
108110
raise forms.ValidationError('The tool is shut down')
109111

110112
# sanity check that paths exist (for development servers)

ietf/submit/tests.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from ietf.utils.test_data import make_test_data
1414
from ietf.utils.mail import outbox
1515
from ietf.utils.test_utils import TestCase
16+
from ietf.meeting.models import Meeting
1617
from ietf.submit.utils import expirable_submissions, expire_submission, ensure_person_email_info_exists
1718
from ietf.person.models import Person
1819
from ietf.group.models import Group
@@ -608,6 +609,29 @@ def test_help_pages(self):
608609
r = self.client.get(urlreverse("submit_tool_instructions"))
609610
self.assertEquals(r.status_code, 200)
610611

612+
def test_blackout_access(self):
613+
make_test_data()
614+
615+
# get
616+
url = urlreverse('submit_upload_submission')
617+
# set meeting to today so we're in blackout period
618+
meeting = Meeting.get_current_meeting()
619+
meeting.date = datetime.datetime.today()
620+
meeting.save()
621+
622+
# regular user, no access
623+
r = self.client.get(url)
624+
self.assertEqual(r.status_code, 200)
625+
q = PyQuery(r.content)
626+
self.assertEqual(len(q('input[type=file][name=txt]')), 0)
627+
628+
# Secretariat has access
629+
self.client.login(username="secretary", password="secretary+password")
630+
r = self.client.get(url)
631+
self.assertEqual(r.status_code, 200)
632+
q = PyQuery(r.content)
633+
self.assertEqual(len(q('input[type=file][name=txt]')), 1)
634+
611635
class ApprovalsTestCase(TestCase):
612636
def test_approvals(self):
613637
make_test_data()

ietf/templates/submit/upload_submission.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{% extends "submit/submit_base.html" %}
22
{# Copyright The IETF Trust 2015, All Rights Reserved #}
33
{% load origin %}
4-
4+
{% load ietf_filters %}
55
{% load bootstrap3 %}
66

77
{% block title %}Upload{% endblock %}
@@ -10,6 +10,10 @@
1010
{% origin %}
1111
{% bootstrap_messages %}
1212

13+
{% if form.shutdown and user|has_role:"Secretariat" %}
14+
<p class="bg-warning">WARNING: currently in draft submission blackout period</p>
15+
{% endif %}
16+
1317
{% if form.cutoff_warning %}
1418
<div class="cutoff-warning">
1519
{{ form.cutoff_warning|safe }}
@@ -28,7 +32,7 @@
2832
six months. They may be updated, replaced, or obsoleted by other
2933
documents at any time.</p>
3034

31-
{% if not form.shutdown %}
35+
{% if not form.shutdown or user|has_role:"Secretariat" %}
3236
<p>If you run into problems when submitting an Internet-Draft
3337
using this and the following pages, you may alternatively submit
3438
your draft by email to

0 commit comments

Comments
 (0)