Merge pull request #422 from alphagov/commas-in-placeholders

Don’t allow commas in placeholders
This commit is contained in:
Chris Hill-Scott
2016-04-12 10:06:08 +01:00
4 changed files with 30 additions and 6 deletions

View File

@@ -46,9 +46,10 @@
this.initialHeight = this.$textbox.height();
this.$backgroundMaskForeground.width(
this.$textbox.width()
);
this.$backgroundMaskForeground.css({
'width': this.$textbox.width(),
'border-width': this.$textbox.css('border-width')
});
this.$textbox
.trigger("input");

View File

@@ -15,7 +15,7 @@ from wtforms import (
from wtforms.fields.html5 import EmailField, TelField
from wtforms.validators import (DataRequired, Email, Length, Regexp)
from app.main.validators import (Blacklist, CsvFileValidator, ValidEmailDomainRegex)
from app.main.validators import (Blacklist, CsvFileValidator, ValidEmailDomainRegex, NoCommasInPlaceHolders)
def email_address(label='Email address'):
@@ -203,7 +203,11 @@ class SMSTemplateForm(Form):
template_content = TextAreaField(
u'Message content',
validators=[DataRequired(message="Cant be empty")])
validators=[
DataRequired(message="Cant be empty"),
NoCommasInPlaceHolders()
]
)
class EmailTemplateForm(SMSTemplateForm):

View File

@@ -2,6 +2,7 @@ import re
from wtforms import ValidationError
from datetime import datetime
from app.main.encryption import check_hash
from utils.template import Template
class Blacklist(object):
@@ -38,3 +39,13 @@ class ValidEmailDomainRegex(object):
email_regex = "[^\@^\s]+@([^@^\\.^\\s]+\.)*({})$".format("|".join(valid_domains))
if not re.match(email_regex, field.data.lower()):
raise ValidationError(message)
class NoCommasInPlaceHolders():
def __init__(self, message='You cant have commas in your fields'):
self.message = message
def __call__(self, form, field):
if ',' in ''.join(Template({'content': field.data}).placeholders):
raise ValidationError(self.message)