Skip to content

Commit 7bc5e4f

Browse files
committed
Added a check for inallowable characters in slide titles at upload time.
- Legacy-Id: 18239
1 parent 249090f commit 7bc5e4f

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

ietf/meeting/tests_views.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2635,6 +2635,23 @@ def test_upload_slides(self):
26352635
self.assertEqual(sp.rev,'01')
26362636
self.assertEqual(sp.document.rev,'01')
26372637

2638+
def test_upload_slide_title_bad_unicode(self):
2639+
session1 = SessionFactory(meeting__type_id='ietf')
2640+
url = urlreverse('ietf.meeting.views.upload_session_slides',kwargs={'num':session1.meeting.number,'session_id':session1.id})
2641+
login_testing_unauthorized(self,"secretary",url)
2642+
r = self.client.get(url)
2643+
self.assertEqual(r.status_code, 200)
2644+
q = PyQuery(r.content)
2645+
self.assertIn('Upload', str(q("title")))
2646+
self.assertFalse(session1.sessionpresentation_set.filter(document__type_id='slides'))
2647+
test_file = BytesIO(b'this is not really a slide')
2648+
test_file.name = 'not_really.txt'
2649+
r = self.client.post(url,dict(file=test_file,title='title with bad character \U0001fabc '))
2650+
self.assertEqual(r.status_code, 200)
2651+
q = PyQuery(r.content)
2652+
self.assertTrue(q('form .has-error'))
2653+
self.assertIn("Unicode BMP", q('form .has-error div').text())
2654+
26382655
def test_remove_sessionpresentation(self):
26392656
session = SessionFactory(meeting__type_id='ietf')
26402657
doc = DocumentFactory(type_id='slides')

ietf/meeting/views.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1993,6 +1993,9 @@ def __init__(self, session, show_apply_to_all_checkbox, *args, **kwargs):
19931993

19941994
def clean_title(self):
19951995
title = self.cleaned_data['title']
1996+
# THe current tables only handles Unicode BMP:
1997+
if ord(max(title)) > 0xffff:
1998+
raise forms.ValidationError("The title contains characters outside the Unicode BMP, which is not currently supported")
19961999
if self.session.meeting.type_id=='interim':
19972000
if re.search(r'-\d{2}$', title):
19982001
raise forms.ValidationError("Interim slides currently may not have a title that ends with something that looks like a revision number (-nn)")

0 commit comments

Comments
 (0)