~tribaal/txaws/xss-hardening

« back to all changes in this revision

Viewing changes to txaws/server/schema.py

  • Committer: Alberto Donato
  • Date: 2013-08-14 10:05:52 UTC
  • Revision ID: alberto.donato@canonical.com-20130814100552-9x3nc2cu27t2o23w
Add a UnicodeLine parameter type (for a single line of text, no newlines). [trivial] [r=free.ekanayaka].

Show diffs side-by-side

added added

removed removed

Lines of Context:
189
189
        return len(value)
190
190
 
191
191
 
 
192
class UnicodeLine(Unicode):
 
193
    """A parameter that must be a C{unicode} string without newlines."""
 
194
 
 
195
    def coerce(self, value):
 
196
        super(UnicodeLine, self).coerce(value)
 
197
        if "\n" in value:
 
198
            raise InvalidParameterValueError("Can't contain newlines.")
 
199
 
 
200
 
192
201
class RawStr(Parameter):
193
202
    """A parameter that must be a C{str}."""
194
203
 
469
478
                    raise RuntimeError("Integer and non-integer keys: %r"
470
479
                                       % value.keys())
471
480
                items = sorted(value.iteritems(), key=itemgetter(0))
472
 
                return [self._wrap(value) for (name, value) in items]
 
481
                return [self._wrap(val) for _, val in items]
473
482
            else:
474
483
                return Arguments(value)
475
484
        elif isinstance(value, list):