Horde_Auth_Sql::_authenticate PHP Method

_authenticate() protected method

Find out if a set of login credentials are valid.
protected _authenticate ( string $userId, array $credentials )
$userId string The userId to check.
$credentials array The credentials to use.
    protected function _authenticate($userId, $credentials)
    {
        /* Build the SQL query. */
        $query = sprintf('SELECT * FROM %s WHERE %s = ?', $this->_params['table'], $this->_params['username_field']);
        $values = array($userId);
        try {
            $row = $this->_db->selectOne($query, $values);
        } catch (Horde_Db_Exception $e) {
            throw new Horde_Auth_Exception('', Horde_Auth::REASON_FAILED);
        }
        if (!$row || !$this->_comparePasswords($row[$this->_params['password_field']], $credentials['password'])) {
            throw new Horde_Auth_Exception('', Horde_Auth::REASON_BADLOGIN);
        }
        $now = time();
        if (!empty($this->_params['hard_expiration_field']) && !empty($row[$this->_params['hard_expiration_field']]) && $now > $row[$this->_params['hard_expiration_field']]) {
            throw new Horde_Auth_Exception('', Horde_Auth::REASON_EXPIRED);
        }
        if (!empty($this->_params['soft_expiration_field']) && !empty($row[$this->_params['soft_expiration_field']]) && $now > $row[$this->_params['soft_expiration_field']]) {
            $this->setCredential('change', true);
            $this->setCredential('expire', $now);
        }
    }