From a2e54ed75906f254eb92c772adf4ee38ff0ca361 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Wed, 8 Jun 2016 01:05:38 +0900 Subject: [PATCH] Enable customizing target users and frequency --- addons/recaptcha/recaptcha.addon.php | 19 ++++++++++++++----- addons/recaptcha/recaptcha.class.php | 1 + 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/addons/recaptcha/recaptcha.addon.php b/addons/recaptcha/recaptcha.addon.php index a04d8b2a4..6a75c1e49 100644 --- a/addons/recaptcha/recaptcha.addon.php +++ b/addons/recaptcha/recaptcha.addon.php @@ -6,8 +6,21 @@ if (!defined('RX_BASEDIR') || !$addon_info->site_key || !$addon_info->secret_key } $current_action = Context::get('act'); +$current_member = Context::get('logged_info'); -if ($addon_info->use_signup === 'Y' && preg_match('/^(?:disp|proc)Member(?:SignUp|Insert)/i', $current_action)) +if ($current_member->is_admin === 'Y') +{ + $enable_captcha = false; +} +elseif ($addon_info->target_users !== 'everyone' && $current_member->member_srl) +{ + $enable_captcha = false; +} +elseif ($addon_info->target_frequency !== 'every_time' && isset($_SESSION['recaptcha_authenticated']) && $_SESSION['recaptcha_authenticated']) +{ + $enable_captcha = false; +} +elseif ($addon_info->use_signup === 'Y' && preg_match('/^(?:disp|proc)Member(?:SignUp|Insert)/i', $current_action)) { $enable_captcha = true; } @@ -42,7 +55,3 @@ if ($enable_captcha) Context::set('captcha', new reCAPTCHA()); } } -else -{ - return; -} diff --git a/addons/recaptcha/recaptcha.class.php b/addons/recaptcha/recaptcha.class.php index 46bcbd511..7c12cc83f 100644 --- a/addons/recaptcha/recaptcha.class.php +++ b/addons/recaptcha/recaptcha.class.php @@ -38,6 +38,7 @@ class reCAPTCHA } else { + $_SESSION['recaptcha_authenticated'] = true; return true; } }