misc: do not display captchas if site option is disabled (#29278) #607
|
@ -416,6 +416,9 @@ class FormDef(StorableObject):
|
|||
self.update_storage()
|
||||
self.store_related_custom_views()
|
||||
|
||||
def has_captcha_enabled(self):
|
||||
return self.has_captcha and get_publisher().has_site_option('formdef-captcha-option')
|
||||
|
||||
def update_storage(self):
|
||||
from . import sql
|
||||
|
||||
|
|
|
@ -338,7 +338,7 @@ class FormPage(FormdefDirectoryBase, FormTemplateMixin):
|
|||
def has_confirmation_page(self):
|
||||
if self.formdef.confirmation:
|
||||
return True
|
||||
if self.formdef.has_captcha:
|
||||
if self.formdef.has_captcha_enabled():
|
||||
session = get_session()
|
||||
if not (session.get_user() or session.won_captcha):
|
||||
return True
|
||||
|
@ -1427,7 +1427,9 @@ class FormPage(FormdefDirectoryBase, FormTemplateMixin):
|
|||
|
||||
# so it gets FakeFileWidget in preview mode
|
||||
form = self.create_view_form(form_data, use_tokens=self.has_confirmation_page())
|
||||
if self.formdef.has_captcha and not (get_session().get_user() or get_session().won_captcha):
|
||||
if self.formdef.has_captcha_enabled() and not (
|
||||
get_session().get_user() or get_session().won_captcha
|
||||
):
|
||||
form.add_captcha(hint='')
|
||||
if form.captcha.has_error():
|
||||
return self.validating(form_data)
|
||||
|
@ -1876,7 +1878,7 @@ class FormPage(FormdefDirectoryBase, FormTemplateMixin):
|
|||
form.add_global_errors(page_error_messages)
|
||||
token_widget = form.get_widget(form.TOKEN_NAME)
|
||||
token_widget._parsed = True
|
||||
if self.formdef.has_captcha and not (get_session().get_user() or get_session().won_captcha):
|
||||
if self.formdef.has_captcha_enabled() and not (get_session().get_user() or get_session().won_captcha):
|
||||
get_request().form['captcha$q'] = ''
|
||||
captcha_text = TextsDirectory.get_html_text('captcha-page')
|
||||
if captcha_text:
|
||||
|
|
Loading…
Reference in New Issue