diff --git a/config.inc.php.dist b/config.inc.php.dist index 9739726..636f8eb 100644 --- a/config.inc.php.dist +++ b/config.inc.php.dist @@ -45,3 +45,6 @@ $rcmail_config['recaptcha_log_unknown'] = 'Error: Unknown log type.'; // Block IPv6 clients based on prefix length // Use an integer between 16 and 128, 0 to disable $rcmail_config['rcguard_ipv6_prefix'] = 0; + +// Do not show recaptcha for this IPs +$rcmail_config['rcguard_ignore_ips'] = array(); diff --git a/rcguard.php b/rcguard.php index 093f445..2506c46 100644 --- a/rcguard.php +++ b/rcguard.php @@ -39,10 +39,15 @@ class rcguard extends rcube_plugin public function init() { $this->load_config(); - $this->add_hook('template_object_loginform', array($this, 'loginform')); - $this->add_hook('authenticate', array($this, 'authenticate')); - $this->add_hook('login_after', array($this, 'login_after')); - $this->add_hook('login_failed', array($this, 'login_failed')); + $ignore_ips = rcmail::get_instance()->config->get('rcguard_ignore_ips', array()); + $client_ip = $this->get_client_ip(); + + if (!in_array($client_ip, $ignore_ips)) { + $this->add_hook('template_object_loginform', array($this, 'loginform')); + $this->add_hook('authenticate', array($this, 'authenticate')); + $this->add_hook('login_after', array($this, 'login_after')); + $this->add_hook('login_failed', array($this, 'login_failed')); + } } public function loginform($loginform)