mirror of
https://github.com/discourse/discourse.git
synced 2026-08-08 17:53:55 +08:00
This is a revival of this PR: https://github.com/discourse/discourse/pull/33636 ### Description This PR adds ReCaptcha as a Captcha provider and provides a refactor to allow other Captcha providers to be added more easily. To achieve this, the following changes were introduced: - Provider Pattern Introduction in lib/discourse_hcaptcha/captcha_provider.rb - Controller refactoring, created a new Parent controller, extracted common logic - Serializer for each captcha provider - Implemented base abstract component for FE captcha logic - h-captcha-service is now provider agnostic (captcha-service) and manages both captcha providers - Added connectors to the UI to allow the chosen captcha to be rendered - Added problem check and site settings for the newly introduced ReCaptcha - `before-create-account` valueTransformer is introduced to allow captcha validation (or any other data) without modifying the class. --------- Co-authored-by: Juan Martinez <juan@discourse.org> Co-authored-by: David Taylor <david@taylorhq.com>
26 lines
486 B
YAML
Vendored
26 lines
486 B
YAML
Vendored
discourse_hcaptcha:
|
|
discourse_captcha_enabled:
|
|
default: false
|
|
client: true
|
|
discourse_captcha_provider:
|
|
default: "none"
|
|
client: true
|
|
type: enum
|
|
choices:
|
|
- hcaptcha
|
|
- recaptcha
|
|
- none
|
|
hcaptcha_site_key:
|
|
default: ''
|
|
client: true
|
|
hcaptcha_secret_key:
|
|
default: ''
|
|
client: false
|
|
secret: true
|
|
recaptcha_site_key:
|
|
default: ''
|
|
client: true
|
|
recaptcha_secret_key:
|
|
default: ''
|
|
client: false
|
|
secret: true
|