function siteaccess_login_hook($hook, $type, $result, $params) { if (siteaccess_login_captcha_enabled()) { $username = get_input('username'); $password = get_input('password', null, false); if (empty($username) || empty($password)) { return true; // if not set bail } // check if logging in with email address if (strpos($username, '@') !== false && ($users = get_user_by_email($username))) { $username = $users[0]->username; } $user = get_user_by_username($username); if (!$user) { return true; // doesn't exit bail } if (!$_SESSION['login_failure']) { $_SESSION['login_failure'] = (int) $user->getPrivateSetting("login_failures"); } if ($_SESSION['login_failure'] >= siteaccess_login_threshold()) { if (!siteaccess_validate_captcha()) { return false; } } // require captcha if (elgg_authenticate($username, $password) !== true) { $_SESSION['login_failure']++; register_error(elgg_echo('login:baduser')); return false; } else { $_SESSION['login_failure'] = 0; } } return true; }
function siteaccess_register_hook($hook, $entity_type, $returnvalue, $params) { $error = false; if (siteaccess_invitecode_enabled()) { $friend_guid = get_input('friend_guid'); $invitecode = get_input('invitecode'); if ($friend_guid) { if ($friend_user = get_user($friend_guid)) { if (!$invitecode == generate_invite_code($friend_user->username)) { $error = true; } } else { $error = true; } } else { $error = true; } } if ($error) { register_error(elgg_echo('siteaccess:invitecode:invalid')); } if (siteaccess_key_enabled()) { $sitekey = get_plugin_setting('siteaccesskey', 'siteaccess'); $inputkey = get_input('siteaccesskey'); if (trim($inputkey) == "" || strcmp($inputkey, $sitekey) != 0) { register_error(elgg_echo('siteaccess:key:invalid')); $error = true; } } if (siteaccess_coppa_enabled()) { $coppa = get_input('coppa'); if (!$coppa) { register_error(elgg_echo('siteaccess:coppa:fail')); $error = true; } } if (extension_loaded("gd")) { if (!siteaccess_validate_captcha()) { $error = true; } } if ($error) { siteaccess_register_fail(); } }