Merge pull request #72 from torrentpier/captcha_provider

Captcha service provider
This commit is contained in:
Exile 2016-02-14 04:25:23 +03:00
commit 2b67579ef4
3 changed files with 28 additions and 5 deletions

View file

@ -66,6 +66,10 @@ $di->register(new \TorrentPier\ServiceProviders\TwigServiceProvider, [
'config.twig.dir_cache' => $di->config->twig->dir_cache '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(); $bb_cfg = $di->config->toArray();
$page_cfg = $di->config->page->toArray(); $page_cfg = $di->config->page->toArray();
$tr_cfg = $di->config->tracker->toArray(); $tr_cfg = $di->config->tracker->toArray();

View file

@ -2608,13 +2608,11 @@ function bb_captcha ($mode, $callback = '')
$public = $di->config->get('captcha.public_key'); $public = $di->config->get('captcha.public_key');
$cp_theme = $di->config->get('captcha.theme'); $cp_theme = $di->config->get('captcha.theme');
if (!$public || !$secret) if (!$public && !$secret)
{ {
bb_die($lang['CAPTCHA_SETTINGS']); bb_die($lang['CAPTCHA_SETTINGS']);
} }
$reCaptcha = new \ReCaptcha\ReCaptcha($secret);
switch ($mode) switch ($mode)
{ {
case 'get': case 'get':
@ -2633,8 +2631,10 @@ function bb_captcha ($mode, $callback = '')
break; break;
case 'check': case 'check':
$g_resp = request_var('g-recaptcha-response', ''); $resp = $di->captcha->verify(
$resp = $reCaptcha->verify($g_resp, $_SERVER['REMOTE_ADDR']); $di->request->get('g-recaptcha-response', ''),
$di->request->server->get('REMOTE_ADDR')
);
if ($resp->isSuccess()) if ($resp->isSuccess())
{ {
return true; return true;

View file

@ -0,0 +1,19 @@
<?php
namespace TorrentPier\ServiceProviders;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
use ReCaptcha\ReCaptcha;
class CaptchaServiceProvider implements ServiceProviderInterface
{
public function register(Container $container)
{
$container['captcha'] = function (Container $container) {
$captcha = new ReCaptcha($container['config.captcha.secret_key']);
return $captcha;
};
}
}