comparison rhodecode/model/forms.py @ 741:54684e071457 beta

fixes issue #78, ldap makes user validation caseInsensitive and fixed validators to check for case insensitive values.
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 23 Nov 2010 12:58:45 +0100
parents dbec976d9975
children 1377a9d4bdb9
comparison
equal deleted inserted replaced
740:9279dfedcf93 741:54684e071457
65 old_un = None 65 old_un = None
66 if edit: 66 if edit:
67 old_un = UserModel().get(old_data.get('user_id')).username 67 old_un = UserModel().get(old_data.get('user_id')).username
68 68
69 if old_un != value or not edit: 69 if old_un != value or not edit:
70 if UserModel().get_by_username(value, cache=False): 70 if UserModel().get_by_username(value.lower(), cache=False):
71 raise formencode.Invalid(_('This username already exists') , 71 raise formencode.Invalid(_('This username already exists') ,
72 value, state) 72 value, state)
73 73
74 return _ValidUsername 74 return _ValidUsername
75 75
242 return value 242 return value
243 243
244 def UniqSystemEmail(old_data): 244 def UniqSystemEmail(old_data):
245 class _UniqSystemEmail(formencode.validators.FancyValidator): 245 class _UniqSystemEmail(formencode.validators.FancyValidator):
246 def to_python(self, value, state): 246 def to_python(self, value, state):
247 value = value.lower()
248 #TODO:write test for MixedCase scenarios
247 if old_data.get('email') != value: 249 if old_data.get('email') != value:
248 sa = meta.Session() 250 sa = meta.Session()
249 try: 251 try:
250 user = sa.query(User).filter(User.email == value).scalar() 252 user = sa.query(User).filter(User.email == value).scalar()
251 if user: 253 if user:
258 260
259 return _UniqSystemEmail 261 return _UniqSystemEmail
260 262
261 class ValidSystemEmail(formencode.validators.FancyValidator): 263 class ValidSystemEmail(formencode.validators.FancyValidator):
262 def to_python(self, value, state): 264 def to_python(self, value, state):
265 value = value.lower()
263 sa = meta.Session 266 sa = meta.Session
264 try: 267 try:
265 user = sa.query(User).filter(User.email == value).scalar() 268 user = sa.query(User).filter(User.email == value).scalar()
266 if user is None: 269 if user is None:
267 raise formencode.Invalid(_("That e-mail address doesn't exist.") , 270 raise formencode.Invalid(_("That e-mail address doesn't exist.") ,