comparison rhodecode/model/forms.py @ 775:aaf2fc59a39a beta

fixes #77 and adds extendable base Dn with custom uid specification
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 26 Nov 2010 23:49:19 +0100
parents 56c2850a5b5f
children bd57d1cb9dc3
comparison
equal deleted inserted replaced
774:c47152c5fe01 775:aaf2fc59a39a
298 import ldap 298 import ldap
299 except ImportError: 299 except ImportError:
300 raise LdapImportError 300 raise LdapImportError
301 return value 301 return value
302 302
303 class BaseDnValidator(formencode.validators.FancyValidator):
304
305 def to_python(self, value, state):
306
307 try:
308 value % {'user':'valid'}
309
310 if value.find('%(user)s') == -1:
311 raise formencode.Invalid(_("You need to specify %(user)s in "
312 "template for example uid=%(user)s "
313 ",dc=company...") ,
314 value, state)
315
316 except KeyError:
317 raise formencode.Invalid(_("Wrong template used, only %(user)s "
318 "is an valid entry") ,
319 value, state)
320
321 return value
322
303 #=============================================================================== 323 #===============================================================================
304 # FORMS 324 # FORMS
305 #=============================================================================== 325 #===============================================================================
306 class LoginForm(formencode.Schema): 326 class LoginForm(formencode.Schema):
307 allow_extra_fields = True 327 allow_extra_fields = True
455 ldap_host = UnicodeString(strip=True,) 475 ldap_host = UnicodeString(strip=True,)
456 ldap_port = Number(strip=True,) 476 ldap_port = Number(strip=True,)
457 ldap_ldaps = StringBoolean(if_missing=False) 477 ldap_ldaps = StringBoolean(if_missing=False)
458 ldap_dn_user = UnicodeString(strip=True,) 478 ldap_dn_user = UnicodeString(strip=True,)
459 ldap_dn_pass = UnicodeString(strip=True,) 479 ldap_dn_pass = UnicodeString(strip=True,)
460 ldap_base_dn = UnicodeString(strip=True,) 480 ldap_base_dn = All(BaseDnValidator, UnicodeString(strip=True,))
461 481
462 return _LdapSettingsForm 482 return _LdapSettingsForm