Make group acronym regex patterns consistent.

There were multiple different regex patterns in different urlpattern
declarations, with some of them permitting characters which should not
occur in group acronym.  Changed them to consistently use [-a-z0-9]+ .
 - Legacy-Id: 11651
This commit is contained in:
Henrik Levkowetz 2016-07-13 19:19:15 +00:00
parent 211943148d
commit 8ca48aac42
8 changed files with 41 additions and 37 deletions

View file

@ -2,6 +2,6 @@ from django.conf.urls import patterns, url
urlpatterns = patterns('ietf.dbtemplate.views',
url(r'^(?P<acronym>[\w.@+-]+)/$', 'template_list', name='template_list'),
url(r'^(?P<acronym>[\w.@+-]+)/(?P<template_id>[\d]+)/$', 'template_edit', name='template_edit'),
url(r'^(?P<acronym>[-a-z0-9]+)/$', 'template_list', name='template_list'),
url(r'^(?P<acronym>[-a-z0-9]+)/(?P<template_id>[\d]+)/$', 'template_edit', name='template_edit'),
)

View file

@ -11,7 +11,7 @@ urlpatterns = patterns('',
(r'^concluded/$', 'ietf.group.views.concluded_groups'),
(r'^email-aliases/$', 'ietf.group.views.email_aliases'),
(r'^all-status/$', 'ietf.group.views.all_status'),
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/$', 'ietf.group.views.group_home', None, "group_home"),
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/', include('ietf.group.urls_info_details')),
(r'^(?P<acronym>[-a-z0-9]+)/$', 'ietf.group.views.group_home', None, "group_home"),
(r'^(?P<acronym>[-a-z0-9]+)/', include('ietf.group.urls_info_details')),
)

View file

@ -7,7 +7,7 @@ from ietf.meeting import views
from ietf.meeting import ajax
safe_for_all_meeting_types = [
url(r'^session/(?P<acronym>[A-Za-z0-9_\-\+]+)/$', views.session_details),
url(r'^session/(?P<acronym>[-a-z0-9]+)/$', views.session_details),
url(r'^session/(?P<session_id>\d+)/drafts$', views.add_session_drafts),
]
@ -69,16 +69,9 @@ type_ietf_only_patterns_id_optional = [
]
urlpatterns = [
# First patterns which start with unique strings
url(r'^$', views.current_materials),
url(r'^ajax/get-utc/$', views.ajax_get_utc),
url(r'^requests.html$', RedirectView.as_view(url='/meeting/requests', permanent=True)),
url(r'^(?P<num>\d+)/requests.html$', RedirectView.as_view(url='/meeting/%(num)s/requests', permanent=True)),
url(r'^(?P<num>[A-Za-z0-9._+-]+)/', include(safe_for_all_meeting_types)),
# The optionals have to go first, otherwise the agenda/(owner)/(name)/ patterns match things they shouldn't
url(r'^(?:(?P<num>\d+)/)?', include(type_ietf_only_patterns_id_optional)),
url(r'^(?P<num>\d+)/', include(type_ietf_only_patterns)),
url(r'^(?P<num>interim-[a-z0-9-]+)/', include(type_ietf_only_patterns)),
url(r'^upcoming/$', views.upcoming),
url(r'^upcoming.ics/$', views.upcoming_ical),
url(r'^interim/announce/$', views.interim_announce),
url(r'^interim/announce/(?P<number>[A-Za-z0-9._+-]+)/$', views.interim_send_announcement),
url(r'^interim/request/$', views.interim_request),
@ -86,6 +79,17 @@ urlpatterns = [
url(r'^interim/request/(?P<number>[A-Za-z0-9._+-]+)/edit/$', views.interim_request_edit),
url(r'^interim/request/(?P<number>[A-Za-z0-9._+-]+)/cancel/$', views.interim_request_cancel),
url(r'^interim/pending/$', views.interim_pending),
url(r'^$', views.current_materials),
url(r'^requests.html$', RedirectView.as_view(url='/meeting/requests', permanent=True)),
url(r'^upcoming/$', views.upcoming),
url(r'^upcoming.ics/$', views.upcoming_ical),
# Then patterns from more specific to less
url(r'^(?P<num>interim-[a-z0-9-]+)/', include(type_ietf_only_patterns)),
url(r'^(?P<num>\d+)/requests.html$', RedirectView.as_view(url='/meeting/%(num)s/requests', permanent=True)),
# The optionals have to go first of these two, otherwise the agenda/(owner)/(name)/ patterns match things they shouldn't
url(r'^(?:(?P<num>\d+)/)?', include(type_ietf_only_patterns_id_optional)),
url(r'^(?P<num>\d+)/', include(type_ietf_only_patterns)),
#
url(r'^(?P<num>\d+)/', include(safe_for_all_meeting_types)),
url(r'^(?P<num>interim-[a-z0-9-]+)/', include(safe_for_all_meeting_types)),
]

View file

@ -6,11 +6,11 @@ urlpatterns = patterns('ietf.secr.groups.views',
url(r'^blue-dot-report/$', 'blue_dot', name='groups_blue_dot'),
url(r'^search/$', 'search', name='groups_search'),
#(r'^ajax/get_ads/$', 'get_ads'),
url(r'^(?P<acronym>[A-Za-z0-9_\-\+\.]+)/$', 'view', name='groups_view'),
url(r'^(?P<acronym>[A-Za-z0-9_\-\+\.]+)/delete/(?P<id>\d{1,6})/$', 'delete_role', name='groups_delete_role'),
url(r'^(?P<acronym>[A-Za-z0-9_\-\+\.]+)/charter/$', 'charter', name='groups_charter'),
url(r'^(?P<acronym>[A-Za-z0-9_\-\+\.]+)/edit/$', 'edit', name='groups_edit'),
url(r'^(?P<acronym>[A-Za-z0-9_\-\+\.]+)/gm/$', 'view_gm', name='groups_view_gm'),
url(r'^(?P<acronym>[A-Za-z0-9_\-\+\.]+)/gm/edit/$', 'edit_gm', name='groups_edit_gm'),
url(r'^(?P<acronym>[A-Za-z0-9_\-\+\.]+)/people/$', 'people', name='groups_people'),
url(r'^(?P<acronym>[-a-z0-9]+)/$', 'view', name='groups_view'),
url(r'^(?P<acronym>[-a-z0-9]+)/delete/(?P<id>\d{1,6})/$', 'delete_role', name='groups_delete_role'),
url(r'^(?P<acronym>[-a-z0-9]+)/charter/$', 'charter', name='groups_charter'),
url(r'^(?P<acronym>[-a-z0-9]+)/edit/$', 'edit', name='groups_edit'),
url(r'^(?P<acronym>[-a-z0-9]+)/gm/$', 'view_gm', name='groups_view_gm'),
url(r'^(?P<acronym>[-a-z0-9]+)/gm/edit/$', 'edit_gm', name='groups_edit_gm'),
url(r'^(?P<acronym>[-a-z0-9]+)/people/$', 'people', name='groups_people'),
)

View file

@ -20,6 +20,6 @@ urlpatterns = patterns('ietf.secr.meetings.views',
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/times/delete/(?P<time>[0-9\:]+)/$', 'times_delete', name='meetings_times_delete'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/times/edit/(?P<time>[0-9\:]+)/$', 'times_edit', name='meetings_times_edit'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/unschedule/(?P<session_id>\d{1,6})/$', 'unschedule', name='meetings_unschedule'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/(?P<acronym>[A-Za-z0-9_\-\+]+)/schedule/$', 'schedule', name='meetings_schedule'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<acronym>[A-Za-z0-9_\-\+]+)/remove/$', 'remove_session', name='meetings_remove_session'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/(?P<acronym>[-a-z0-9]+)/schedule/$', 'schedule', name='meetings_schedule'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<acronym>[-a-z0-9]+)/remove/$', 'remove_session', name='meetings_remove_session'),
)

View file

@ -5,7 +5,7 @@ urlpatterns = patterns('ietf.secr.proceedings.views',
url(r'^ajax/generate-proceedings/(?P<meeting_num>\d{1,3})/$', 'ajax_generate_proceedings', name='proceedings_ajax_generate_proceedings'),
url(r'^ajax/order-slide/$', 'ajax_order_slide', name='proceedings_ajax_order_slide'),
# special offline URL for testing proceedings build
url(r'^build/(?P<meeting_num>\d{1,3}|interim-\d{4}-[A-Za-z0-9_\-\+]+)/(?P<acronym>[A-Za-z0-9_\-\+]+)/$',
url(r'^build/(?P<meeting_num>\d{1,3}|interim-\d{4}-[A-Za-z0-9_\-\+]+)/(?P<acronym>[-a-z0-9]+)/$',
'build', name='proceedings_build'),
url(r'^delete/(?P<slide_id>[A-Za-z0-9._\-\+]+)/$', 'delete_material', name='proceedings_delete_material'),
url(r'^edit-slide/(?P<slide_id>[A-Za-z0-9._\-\+]+)/$', 'edit_slide', name='proceedings_edit_slide'),
@ -20,6 +20,6 @@ urlpatterns = patterns('ietf.secr.proceedings.views',
# NOTE: we have two entries here which both map to upload_unified, passing session_id or acronym
url(r'^(?P<meeting_num>\d{1,3}|interim-\d{4}-[A-Za-z0-9_\-\+]+)/(?P<session_id>\d{1,6})/$',
'upload_unified', name='proceedings_upload_unified'),
url(r'^(?P<meeting_num>\d{1,3}|interim-\d{4}-[A-Za-z0-9_\-\+]+)/(?P<acronym>[A-Za-z0-9_\-\+]+)/$',
url(r'^(?P<meeting_num>\d{1,3}|interim-\d{4}-[A-Za-z0-9_\-\+]+)/(?P<acronym>[-a-z0-9]+)/$',
'upload_unified', name='proceedings_upload_unified'),
)

View file

@ -2,6 +2,6 @@ from django.conf.urls import patterns, url
urlpatterns = patterns('ietf.secr.roles.views',
url(r'^$', 'main', name='roles'),
url(r'^ajax/get-roles/(?P<acronym>[A-Za-z0-9_\-\+\.]+)/$', 'ajax_get_roles', name='roles_ajax_get_roles'),
url(r'^(?P<acronym>[A-Za-z0-9_\-\+\.]+)/delete/(?P<id>\d{1,6})/$', 'delete_role', name='roles_delete_role'),
url(r'^ajax/get-roles/(?P<acronym>[-a-z0-9]+)/$', 'ajax_get_roles', name='roles_ajax_get_roles'),
url(r'^(?P<acronym>[-a-z0-9]+)/delete/(?P<id>\d{1,6})/$', 'delete_role', name='roles_delete_role'),
)

View file

@ -3,13 +3,13 @@ from django.conf.urls import patterns, url
urlpatterns = patterns('ietf.secr.sreq.views',
url(r'^$', 'main', name='sessions'),
url(r'^status/$', 'tool_status', name='sessions_tool_status'),
url(r'^(?P<acronym>[A-Za-z0-9_\-\+]+)/$', 'view', name='sessions_view'),
url(r'^(?P<num>[A-Za-z0-9_\-\+]+)/(?P<acronym>[A-Za-z0-9_\-\+]+)/view/$', 'view', name='sessions_view'),
url(r'^(?P<acronym>[A-Za-z0-9_\-\+]+)/approve/$', 'approve', name='sessions_approve'),
url(r'^(?P<acronym>[A-Za-z0-9_\-\+]+)/cancel/$', 'cancel', name='sessions_cancel'),
url(r'^(?P<acronym>[A-Za-z0-9_\-\+]+)/confirm/$', 'confirm', name='sessions_confirm'),
url(r'^(?P<acronym>[A-Za-z0-9_\-\+]+)/edit/$', 'edit', name='sessions_edit'),
url(r'^(?P<acronym>[A-Za-z0-9_\-\+]+)/new/$', 'new', name='sessions_new'),
url(r'^(?P<acronym>[A-Za-z0-9_\-\+]+)/no_session/$', 'no_session', name='sessions_no_session'),
url(r'^(?P<num>[A-Za-z0-9_\-\+]+)/(?P<acronym>[A-Za-z0-9_\-\+]+)/edit/$', 'edit_mtg', name='sessions_edit'),
url(r'^(?P<acronym>[-a-z0-9]+)/$', 'view', name='sessions_view'),
url(r'^(?P<num>[A-Za-z0-9_\-\+]+)/(?P<acronym>[-a-z0-9]+)/view/$', 'view', name='sessions_view'),
url(r'^(?P<acronym>[-a-z0-9]+)/approve/$', 'approve', name='sessions_approve'),
url(r'^(?P<acronym>[-a-z0-9]+)/cancel/$', 'cancel', name='sessions_cancel'),
url(r'^(?P<acronym>[-a-z0-9]+)/confirm/$', 'confirm', name='sessions_confirm'),
url(r'^(?P<acronym>[-a-z0-9]+)/edit/$', 'edit', name='sessions_edit'),
url(r'^(?P<acronym>[-a-z0-9]+)/new/$', 'new', name='sessions_new'),
url(r'^(?P<acronym>[-a-z0-9]+)/no_session/$', 'no_session', name='sessions_no_session'),
url(r'^(?P<num>[A-Za-z0-9_\-\+]+)/(?P<acronym>[-a-z0-9]+)/edit/$', 'edit_mtg', name='sessions_edit'),
)