summaryrefslogtreecommitdiffstats
path: root/ipalib/plugins/user.py
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2012-04-03 09:23:39 -0400
committerRob Crittenden <rcritten@redhat.com>2012-04-08 17:10:39 -0400
commitdcea80fc1700aff5a87e3f3bff442e80455243a0 (patch)
treee6578859de1b0298d15209bf81b1fa999591409c /ipalib/plugins/user.py
parent7471ba22370626b26413c0f861c4ebb4a7128948 (diff)
downloadfreeipa-dcea80fc1700aff5a87e3f3bff442e80455243a0.tar.gz
freeipa-dcea80fc1700aff5a87e3f3bff442e80455243a0.tar.xz
freeipa-dcea80fc1700aff5a87e3f3bff442e80455243a0.zip
Check configured maximum user login length on user rename.
ticket 2587
Diffstat (limited to 'ipalib/plugins/user.py')
-rw-r--r--ipalib/plugins/user.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/ipalib/plugins/user.py b/ipalib/plugins/user.py
index a1afe40a3..5b20984c4 100644
--- a/ipalib/plugins/user.py
+++ b/ipalib/plugins/user.py
@@ -551,6 +551,16 @@ class user_mod(LDAPUpdate):
has_output_params = LDAPUpdate.has_output_params + user_output_params
def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options):
+ if 'rename' in options:
+ config = ldap.get_ipa_config()[1]
+ if 'ipamaxusernamelength' in config:
+ if len(options['rename']) > 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])
+ )
+ )
if 'mail' in entry_attrs:
entry_attrs['mail'] = self.obj._normalize_email(entry_attrs['mail'])
if 'manager' in entry_attrs: