diff rhodecode/model/forms.py @ 1757:2aa7f454204e beta

fixes #298, ldap email addresses created by rhodecode automatically during first login didn't get converted to lower case, which lead to lookup failures and than wrong checks for uniqueness. Fixed that by putting a setter on db model column that will enforce converting to lowercase.
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 06 Dec 2011 01:18:27 +0200
parents 8ecc6b8229a5
children 9dda1146327c
line wrap: on
line diff
--- a/rhodecode/model/forms.py	Mon Dec 05 03:31:23 2011 +0200
+++ b/rhodecode/model/forms.py	Tue Dec 06 01:18:27 2011 +0200
@@ -396,7 +396,7 @@
 class ValidSettings(formencode.validators.FancyValidator):
 
     def to_python(self, value, state):
-        #settings  form can't edit user
+        # settings  form can't edit user
         if value.has_key('user'):
             del['value']['user']
 
@@ -416,7 +416,7 @@
         def to_python(self, value, state):
             value = value.lower()
             if old_data.get('email') != value:
-                user = User.query().filter(User.email == value).scalar()
+                user = User.get_by_email(value, case_insensitive=True)
                 if user:
                     raise formencode.Invalid(
                                     _("This e-mail address is already taken"),
@@ -428,7 +428,7 @@
 class ValidSystemEmail(formencode.validators.FancyValidator):
     def to_python(self, value, state):
         value = value.lower()
-        user = User.query().filter(User.email == value).scalar()
+        user = User.get_by_email(value, case_insensitive=True)
         if  user is None:
             raise formencode.Invalid(_("This e-mail address doesn't exist.") ,
                                      value, state)