Fix reporting of errors when validating parameters.

Print the attribute CLI name instead of its 'real' name.
The real name is usually the name of the corresponding LDAP
attribute, which is confusing to the user.

This way we get:
Invalid 'login': blablabla
instead of:
Invalid 'uid': blablabla

Another example:
Invalid 'hostname': blablabla
instead of:
Invalid 'fqdn': blablabla

Ticket #435
This commit is contained in:
Pavel Zuna
2010-12-21 12:14:38 -05:00
committed by Rob Crittenden
parent 7bcc533d95
commit 1a7f5e0cc4
2 changed files with 11 additions and 2 deletions

View File

@@ -748,8 +748,11 @@ class Param(ReadOnly):
for rule in self.all_rules:
error = rule(ugettext, value)
if error is not None:
name = self.cli_name
if not name:
name = self.name
raise ValidationError(
name=self.name,
name=name,
value=value,
index=index,
error=error,

View File

@@ -227,7 +227,13 @@ class user_add(LDAPCreate):
config = ldap.get_ipa_config()[1]
if 'ipamaxusernamelength' in config:
if len(keys[-1]) > int(config.get('ipamaxusernamelength')[0]):
raise errors.ValidationError(name='uid', error=_('can be at most %(len)d characters' % dict(len = int(config.get('ipamaxusernamelength')[0]))))
raise errors.ValidationError(
name=self.obj.primary_key.cli_name, error=_(
'can be at most %(len)d characters' % dict(
len = int(config.get('ipamaxusernamelength')[0])
)
)
)
entry_attrs.setdefault('loginshell', config.get('ipadefaultloginshell'))
# hack so we can request separate first and last name in CLI
full_name = '%s %s' % (entry_attrs['givenname'], entry_attrs['sn'])