Skip to content

Commit c0c608a

Browse files
committed
Fixed agenda view save-as. Fixes ietf-tools#1425. Commit ready for merge.
- Legacy-Id: 8604
1 parent b74d4e7 commit c0c608a

2 files changed

Lines changed: 24 additions & 1 deletion

File tree

ietf/meeting/tests_views.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,26 @@ def test_save_agenda_as_and_read_permissions(self):
211211
r = self.client.get(url)
212212
self.assertEqual(r.status_code, 200)
213213

214+
def test_save_agenda_broken_names(self):
215+
meeting = make_meeting_test_data()
216+
217+
# save as new name (requires valid existing agenda)
218+
url = urlreverse("ietf.meeting.views.edit_agenda", kwargs=dict(num=meeting.number,
219+
owner=meeting.agenda.owner_email(),
220+
name=meeting.agenda.name))
221+
self.client.login(username="ad", password="ad+password")
222+
r = self.client.post(url, {
223+
'savename': "/no/this/should/not/work/it/is/too/long",
224+
'saveas': "saveas",
225+
})
226+
self.assertEqual(r.status_code, 404)
227+
#r = self.client.post(url, {
228+
# 'savename': "/invalid/chars/",
229+
# 'saveas': "saveas",
230+
# })
231+
#self.assertEqual(r.status_code, 404)
232+
233+
214234
def test_edit_timeslots(self):
215235
meeting = make_meeting_test_data()
216236

ietf/meeting/views.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ def get_user_agent(request):
8989
return user_agent
9090

9191
class SaveAsForm(forms.Form):
92-
savename = forms.CharField(max_length=100)
92+
savename = forms.CharField(max_length=16)
9393

9494
@role_required('Area Director','Secretariat')
9595
def agenda_create(request, num=None, owner=None, name=None):
@@ -109,6 +109,9 @@ def agenda_create(request, num=None, owner=None, name=None):
109109

110110
savedname = saveasform.cleaned_data['savename']
111111

112+
if not savedname.isalnum():
113+
return HttpResponse("Asked to save with invalid name", status=404)
114+
112115
# create the new schedule, and copy the scheduledsessions
113116
try:
114117
sched = meeting.schedule_set.get(name=savedname, owner=request.user.person)

0 commit comments

Comments
 (0)