コード例 #1
0
ファイル: start.php プロジェクト: sh3llc0de/elgg-siteaccess
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;
}
コード例 #2
0
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();
    }
}