/** * When option value is updated * do same checks as plugin itself does * and log if we match something */ function on_option_limit_login_lockouts_total($value) { global $limit_login_just_lockedout; if (!$limit_login_just_lockedout) { return $value; } $ip = limit_login_get_address(); $whitelisted = is_limit_login_ip_whitelisted($ip); $retries = get_option('limit_login_retries'); if (!is_array($retries)) { $retries = array(); } if (isset($retries[$ip]) && $retries[$ip] / limit_login_option('allowed_retries') % limit_login_option('notify_email_after') != 0) { // $this->notice( "user locked out but don't log" ); //return; } /* Format message. First current lockout duration */ $lockout_type = ""; if (!isset($retries[$ip])) { /* longer lockout */ $lockout_type = "longer"; $count = limit_login_option('allowed_retries') * limit_login_option('allowed_lockouts'); $lockouts = limit_login_option('allowed_lockouts'); $time = round(limit_login_option('long_duration') / 3600); #$when = sprintf( _n( '%d hour', '%d hours', $time, "Logger: Plugin Limit Login Attempts", 'limit-login-attempts' ), $time ); } else { /* normal lockout */ $lockout_type = "normal"; $count = $retries[$ip]; $lockouts = floor($count / limit_login_option('allowed_retries')); $time = round(limit_login_option('lockout_duration') / 60); //$when = sprintf( _n( '%d minute', '%d minutes', $time, 'limit-login-attempts' ), $time ); } if ($whitelisted) { // $subject = __( "Failed login attempts from whitelisted IP", 'limit-login-attempts' ); $message_key = "failed_login_whitelisted"; } else { // $subject = __( "Too many failed login attempts", 'limit-login-attempts' ); $message_key = "failed_login"; } $this->noticeMessage($message_key, array("_initiator" => SimpleLoggerLogInitiators::WEB_USER, "value" => $value, "limit_login_just_lockedout" => $limit_login_just_lockedout, "count" => $count, "time" => $time, "lockouts" => $lockouts, "ip" => $ip, "lockout_type" => $lockout_type)); return $value; }
function limit_login_get_message() { /* Check external whitelist */ if (is_limit_login_ip_whitelisted()) { return ''; } /* Is lockout in effect? */ if (!is_limit_login_ok()) { return limit_login_error_msg(); } return limit_login_retries_remaining_msg(); }