summaryrefslogtreecommitdiffstats
path: root/ipalib/parameters.py
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2013-01-08 16:32:41 +0100
committerMartin Kosek <mkosek@redhat.com>2013-02-08 15:16:37 +0100
commit1d35043e466dfca22cdaf463b6623c10a9ff2d39 (patch)
tree2b6e9a66c0e8b6db589d1a706e3de079566b9b1e /ipalib/parameters.py
parentcbb262dc07ea0615068a630e6c7136e3200d5a06 (diff)
downloadfreeipa-1d35043e466dfca22cdaf463b6623c10a9ff2d39.tar.gz
freeipa-1d35043e466dfca22cdaf463b6623c10a9ff2d39.tar.xz
freeipa-1d35043e466dfca22cdaf463b6623c10a9ff2d39.zip
Raise ValidationError on invalid CSV values.
https://fedorahosted.org/freeipa/ticket/3323
Diffstat (limited to 'ipalib/parameters.py')
-rw-r--r--ipalib/parameters.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/ipalib/parameters.py b/ipalib/parameters.py
index 502f173c9..2e26923dd 100644
--- a/ipalib/parameters.py
+++ b/ipalib/parameters.py
@@ -694,9 +694,16 @@ class Param(ReadOnly):
delimiter=self.csv_separator, quotechar='"',
skipinitialspace=self.csv_skipspace,
**kwargs)
- for row in csv_reader:
- # decode UTF-8 back to Unicode, cell by cell:
- yield [unicode(cell, 'utf-8') for cell in row]
+ try:
+ for row in csv_reader:
+ # decode UTF-8 back to Unicode, cell by cell:
+ yield [unicode(cell, 'utf-8') for cell in row]
+ except csv.Error, e:
+ raise ValidationError(
+ name=self.get_param_name(),
+ value=unicode_csv_data,
+ error=_("Improperly formatted CSV value (%s)" % e)
+ )
def split_csv(self, value):
"""Split CSV strings into individual values.