Exemple #1
0
function validate_login(array $values)
{
    $v = new Validator($values, array(new Validators\Required('username', t('The user name is required')), new Validators\MaxLength('username', t('The maximum length is 50 characters'), 50), new Validators\Required('password', t('The password is required'))));
    $result = $v->execute();
    $errors = $v->getErrors();
    if ($result) {
        $credentials = getCredentials();
        if ($credentials && $credentials['username'] === $values['username'] && password_verify($values['password'], $credentials['password'])) {
            $_SESSION['loggedin'] = true;
            $_SESSION['config'] = Config\get_all();
            // Setup the remember me feature
            if (!empty($values['remember_me'])) {
                $cookie = RememberMe\create(DatabaseModel\select(), $values['username'], Config\get_ip_address(), Config\get_user_agent());
                RememberMe\write_cookie($cookie['token'], $cookie['sequence'], $cookie['expiration']);
            }
        } else {
            $result = false;
            $errors['login'] = t('Bad username or password');
        }
    }
    return array($result, $errors);
}
Exemple #2
0
/**
 * Decode the value of a cookie
 *
 * @access public
 * @param  string   $value    Raw cookie data
 * @return array
 */
function decode_cookie($value)
{
    @(list($database, $token, $sequence) = explode('|', $value));
    if (ENABLE_MULTIPLE_DB && !DatabaseModel\select(base64_decode($database))) {
        return false;
    }
    return array('token' => $token, 'sequence' => $sequence);
}