Mercurial > kallithea
comparison rhodecode/model/forms.py @ 1298:e3deb588cf14 beta
fixed http/s validation for clone_uri, and missing return value.
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 01 May 2011 22:21:19 +0200 |
parents | 74685a31cc43 |
children | a7a772ea7b95 |
comparison
equal
deleted
inserted
replaced
1297:d87997ed6ef1 | 1298:e3deb588cf14 |
---|---|
20 | 20 |
21 """ | 21 """ |
22 import os | 22 import os |
23 import re | 23 import re |
24 import logging | 24 import logging |
25 import traceback | |
25 | 26 |
26 import formencode | 27 import formencode |
27 from formencode import All | 28 from formencode import All |
28 from formencode.validators import UnicodeString, OneOf, Int, Number, Regex, \ | 29 from formencode.validators import UnicodeString, OneOf, Int, Number, Regex, \ |
29 Email, Bool, StringBoolean, Set | 30 Email, Bool, StringBoolean, Set |
225 def ValidCloneUri(): | 226 def ValidCloneUri(): |
226 from mercurial.httprepo import httprepository, httpsrepository | 227 from mercurial.httprepo import httprepository, httpsrepository |
227 from rhodecode.lib.utils import make_ui | 228 from rhodecode.lib.utils import make_ui |
228 | 229 |
229 class _ValidCloneUri(formencode.validators.FancyValidator): | 230 class _ValidCloneUri(formencode.validators.FancyValidator): |
231 | |
230 def to_python(self, value, state): | 232 def to_python(self, value, state): |
231 if not value: | 233 if not value: |
232 pass | 234 pass |
233 elif value.startswith('https'): | 235 elif value.startswith('https'): |
234 try: | 236 try: |
235 httpsrepository(make_ui('db'), value).capabilities() | 237 httpsrepository(make_ui('db'), value).capabilities |
236 except: | 238 except Exception, e: |
239 log.error(traceback.format_exc()) | |
237 raise formencode.Invalid(_('invalid clone url'), value, | 240 raise formencode.Invalid(_('invalid clone url'), value, |
238 state) | 241 state) |
239 elif value.startswith('http'): | 242 elif value.startswith('http'): |
240 try: | 243 try: |
241 httprepository(make_ui('db'), value).capabilities() | 244 httprepository(make_ui('db'), value).capabilities |
242 except: | 245 except Exception, e: |
246 log.error(traceback.format_exc()) | |
243 raise formencode.Invalid(_('invalid clone url'), value, | 247 raise formencode.Invalid(_('invalid clone url'), value, |
244 state) | 248 state) |
245 else: | 249 else: |
246 raise formencode.Invalid(_('Invalid clone url, provide a ' | 250 raise formencode.Invalid(_('Invalid clone url, provide a ' |
247 'valid clone http\s url'), value, | 251 'valid clone http\s url'), value, |
248 state) | 252 state) |
253 return value | |
249 | 254 |
250 return _ValidCloneUri | 255 return _ValidCloneUri |
251 | 256 |
252 def ValidForkType(old_data): | 257 def ValidForkType(old_data): |
253 class _ValidForkType(formencode.validators.FancyValidator): | 258 class _ValidForkType(formencode.validators.FancyValidator): |