diff options
Diffstat (limited to 'ipalib/parameters.py')
-rw-r--r-- | ipalib/parameters.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/ipalib/parameters.py b/ipalib/parameters.py index 98b02dd6d..dd505a179 100644 --- a/ipalib/parameters.py +++ b/ipalib/parameters.py @@ -112,7 +112,7 @@ from errors import ConversionError, RequirementError, ValidationError from errors import PasswordMismatch from constants import NULLS, TYPE_ERROR, CALLABLE_ERROR from text import Gettext, FixMe - +from ipapython.dn import DN class DefaultFrom(ReadOnly): """ @@ -1845,6 +1845,23 @@ class AccessTime(Str): return None +class DNParam(Param): + type = DN + + def _convert_scalar(self, value, index=None): + """ + Convert a single scalar value. + """ + if type(value) is self.type: + return value + + try: + dn = DN(value) + except Exception, e: + raise ConversionError(name=self.get_param_name(), index=index, + error=ugettext(e)) + return dn + def create_param(spec): """ Create an `Str` instance from the shorthand ``spec``. |