summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2013-04-20 22:34:28 +0800
committerJeremy Kerr <jk@ozlabs.org>2013-04-20 22:45:20 +0800
commit8fd9086f337a09125ddcfaa616e762a4d85c6000 (patch)
tree0184d09f754afb76d835bd20631cfffa137c7c0b /apps
parent5d0140ef04ababd93c45b5126ee1b412bd778da5 (diff)
downloadpatchwork-8fd9086f337a09125ddcfaa616e762a4d85c6000.tar.bz2
patchwork-8fd9086f337a09125ddcfaa616e762a4d85c6000.tar.xz
bundles: Don't allow slashes in bundle names
Because bundle names are used in URLs, we don't want slashes in them. Include a SQL migration script. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'apps')
-rw-r--r--apps/patchwork/forms.py5
-rw-r--r--apps/patchwork/utils.py3
2 files changed, 7 insertions, 1 deletions
diff --git a/apps/patchwork/forms.py b/apps/patchwork/forms.py
index d5e51a2..8219769 100644
--- a/apps/patchwork/forms.py
+++ b/apps/patchwork/forms.py
@@ -58,11 +58,14 @@ class LoginForm(forms.Form):
password = forms.CharField(widget = forms.PasswordInput)
class BundleForm(forms.ModelForm):
+ name = forms.RegexField(regex = r'^[^/]+$', max_length=50, label=u'Name',
+ error_messages = {'invalid': 'Bundle names can\'t contain slashes'})
+
class Meta:
model = Bundle
fields = ['name', 'public']
-class CreateBundleForm(forms.ModelForm):
+class CreateBundleForm(BundleForm):
def __init__(self, *args, **kwargs):
super(CreateBundleForm, self).__init__(*args, **kwargs)
diff --git a/apps/patchwork/utils.py b/apps/patchwork/utils.py
index 1771167..f48e7a5 100644
--- a/apps/patchwork/utils.py
+++ b/apps/patchwork/utils.py
@@ -105,6 +105,9 @@ def set_bundle(user, project, action, data, patches, context):
bundle = None
if action == 'create':
bundle_name = data['bundle_name'].strip()
+ if '/' in bundle_name:
+ return ['Bundle names can\'t contain slashes']
+
if not bundle_name:
return ['No bundle name was specified']