changeset 1690:6944b1249f28 beta

fixed issues with not unique emails when using ldap or container auth.
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 16 Nov 2011 21:31:14 +0200
parents cc302c98bb8e
children 0b8cf2e82bd4
files rhodecode/lib/auth_ldap.py rhodecode/model/user.py
diffstat 2 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/lib/auth_ldap.py	Wed Nov 16 21:25:41 2011 +0200
+++ b/rhodecode/lib/auth_ldap.py	Wed Nov 16 21:31:14 2011 +0200
@@ -43,8 +43,7 @@
     def __init__(self, server, base_dn, port=389, bind_dn='', bind_pass='',
                  tls_kind='PLAIN', tls_reqcert='DEMAND', ldap_version=3,
                  ldap_filter='(&(objectClass=user)(!(objectClass=computer)))',
-                 search_scope='SUBTREE',
-                 attr_login='uid'):
+                 search_scope = 'SUBTREE', attr_login = 'uid'):
         self.ldap_version = ldap_version
         ldap_server_type = 'ldap'
 
@@ -60,7 +59,7 @@
         self.LDAP_SERVER_ADDRESS = server
         self.LDAP_SERVER_PORT = port
 
-        #USE FOR READ ONLY BIND TO LDAP SERVER
+        # USE FOR READ ONLY BIND TO LDAP SERVER
         self.LDAP_BIND_DN = bind_dn
         self.LDAP_BIND_PASS = bind_pass
 
--- a/rhodecode/model/user.py	Wed Nov 16 21:25:41 2011 +0200
+++ b/rhodecode/model/user.py	Wed Nov 16 21:31:14 2011 +0200
@@ -149,6 +149,10 @@
         :param attrs:
         """
         if self.get_by_username(username, case_insensitive=True) is None:
+
+            # autogenerate email for container account without one
+            generate_email = lambda usr: '%s@container_auth.account' % usr
+
             try:
                 new_user = User()
                 new_user.username = username
@@ -156,7 +160,7 @@
                 new_user.api_key = generate_api_key(username)
                 new_user.email = attrs['email']
                 new_user.active = attrs.get('active', True)
-                new_user.name = attrs['name']
+                new_user.name = attrs['name'] or generate_email(username)
                 new_user.lastname = attrs['lastname']
 
                 self.sa.add(new_user)