changeset 1689:cc302c98bb8e beta

fix fo empty email passed in attributes of ldap account. It causes crash when creating auto account for ldap.
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 16 Nov 2011 21:25:41 +0200
parents 82e604d3fc46
children 6944b1249f28
files rhodecode/model/user.py
diffstat 1 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/model/user.py	Tue Nov 15 00:15:19 2011 +0200
+++ b/rhodecode/model/user.py	Wed Nov 16 21:25:41 2011 +0200
@@ -183,13 +183,18 @@
         from rhodecode.lib.auth import get_crypt_password
         log.debug('Checking for such ldap account in RhodeCode database')
         if self.get_by_username(username, case_insensitive=True) is None:
+
+            # autogenerate email for ldap account without one
+            generate_email = lambda usr: '%s@ldap.account' % usr
+
             try:
                 new_user = User()
+                username = username.lower()
                 # add ldap account always lowercase
-                new_user.username = username.lower()
+                new_user.username = username
                 new_user.password = get_crypt_password(password)
                 new_user.api_key = generate_api_key(username)
-                new_user.email = attrs['email']
+                new_user.email = attrs['email'] or generate_email(username)
                 new_user.active = attrs.get('active', True)
                 new_user.ldap_dn = safe_unicode(user_dn)
                 new_user.name = attrs['name']