- Fixed "global name 'WrongCaptchaCode' is not defined" if norobots captcha,
but no other validation package is installed. svn path=/plone.app.discussion/trunk/; revision=40574
This commit is contained in:
@@ -21,6 +21,11 @@ from plone.app.discussion.interfaces import ICaptcha
|
||||
from plone.app.discussion.interfaces import IDiscussionSettings
|
||||
from plone.app.discussion.interfaces import IDiscussionLayer
|
||||
|
||||
try:
|
||||
from collective.z3cform.norobots.validator import WrongNorobotsAnswer
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
try:
|
||||
from plone.formwidget.captcha.validator import WrongCaptchaCode
|
||||
except ImportError:
|
||||
@@ -31,7 +36,6 @@ try:
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
|
||||
class CaptchaValidator(validator.SimpleFieldValidator):
|
||||
implements(IValidator)
|
||||
adapts(Interface, IDiscussionLayer, Interface, IField, Interface)
|
||||
@@ -48,7 +52,10 @@ class CaptchaValidator(validator.SimpleFieldValidator):
|
||||
captcha = getMultiAdapter((aq_inner(self.context), self.request),
|
||||
name=settings.captcha)
|
||||
if not captcha.verify(input=value):
|
||||
raise WrongCaptchaCode
|
||||
if settings.captcha == 'norobots':
|
||||
raise WrongNorobotsAnswer
|
||||
else:
|
||||
raise WrongCaptchaCode
|
||||
else:
|
||||
return True
|
||||
|
||||
|
||||
Reference in New Issue
Block a user