From 44f4b83cc2283d5d60255d76eecef512fc302cef Mon Sep 17 00:00:00 2001 From: Exile Date: Sun, 14 Feb 2016 03:54:09 +0300 Subject: [PATCH] Captcha service provider --- common.php | 4 ++++ library/includes/functions.php | 10 +++++----- .../CaptchaServiceProvider.php | 19 +++++++++++++++++++ 3 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 src/ServiceProviders/CaptchaServiceProvider.php diff --git a/common.php b/common.php index 76a8d97d7..e0263f09a 100644 --- a/common.php +++ b/common.php @@ -66,6 +66,10 @@ $di->register(new \TorrentPier\ServiceProviders\TwigServiceProvider, [ 'config.twig.dir_cache' => $di->config->twig->dir_cache ]); +$di->register(new \TorrentPier\ServiceProviders\CaptchaServiceProvider, [ + 'config.captcha.secret_key' => $di->config->captcha->secret_key +]); + $bb_cfg = $di->config->toArray(); $page_cfg = $di->config->page->toArray(); $tr_cfg = $di->config->tracker->toArray(); diff --git a/library/includes/functions.php b/library/includes/functions.php index afa20e9bb..3107bf59f 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -2608,13 +2608,11 @@ function bb_captcha ($mode, $callback = '') $public = $di->config->get('captcha.public_key'); $cp_theme = $di->config->get('captcha.theme'); - if (!$public || !$secret) + if (!$public && !$secret) { bb_die($lang['CAPTCHA_SETTINGS']); } - $reCaptcha = new \ReCaptcha\ReCaptcha($secret); - switch ($mode) { case 'get': @@ -2633,8 +2631,10 @@ function bb_captcha ($mode, $callback = '') break; case 'check': - $g_resp = request_var('g-recaptcha-response', ''); - $resp = $reCaptcha->verify($g_resp, $_SERVER['REMOTE_ADDR']); + $resp = $di->captcha->verify( + $di->request->get('g-recaptcha-response', ''), + $di->request->server->get('REMOTE_ADDR') + ); if ($resp->isSuccess()) { return true; diff --git a/src/ServiceProviders/CaptchaServiceProvider.php b/src/ServiceProviders/CaptchaServiceProvider.php new file mode 100644 index 000000000..5287069b2 --- /dev/null +++ b/src/ServiceProviders/CaptchaServiceProvider.php @@ -0,0 +1,19 @@ +