guest = 1; $this->username = ''; $this->gid = 0; } function insert($sessionId, $clientId) { $this->session_id = $sessionId; $this->client_id = $clientId; $this->time = time(); $ret = $this->_db->insertObject( $this->_tbl, $this, 'session_id' ); if( !$ret ) { $this->setError(strtolower(get_class( $this ))."::". JText::_( 'store failed' ) ."
" . $this->_db->stderr()); return false; } else { return true; } } function update( $updateNulls = false ) { $this->time = time(); $ret = $this->_db->updateObject( $this->_tbl, $this, 'session_id', $updateNulls ); if( !$ret ) { $this->setError(strtolower(get_class( $this ))."::". JText::_( 'store failed' ) ."
" . $this->_db->stderr()); return false; } else { return true; } } /** * Destroys the pesisting session */ function destroy($userId, $clientIds = array()) { $clientIds = implode( ',', $clientIds ); $query = 'DELETE FROM #__session' . ' WHERE userid = '. $this->_db->Quote( $userId ) . ' AND client_id IN ( '.$clientIds.' )' ; $this->_db->setQuery( $query ); if ( !$this->_db->query() ) { $this->setError( $this->_db->stderr()); return false; } return true; } /** * Purge old sessions * * @param int Session age in seconds * @return mixed Resource on success, null on fail */ function purge( $maxLifetime = 1440 ) { $past = time() - $maxLifetime; $query = 'DELETE FROM '. $this->_tbl .' WHERE ( time < \''. (int) $past .'\' )'; // Index on 'VARCHAR' $this->_db->setQuery($query); return $this->_db->query(); } /** * Find out if a user has a one or more active sessions * * @param int $userid The identifier of the user * @return boolean True if a session for this user exists */ function exists($userid) { $query = 'SELECT COUNT(userid) FROM #__session' . ' WHERE userid = '. $this->_db->Quote( $userid ); $this->_db->setQuery( $query ); if ( !$result = $this->_db->loadResult() ) { $this->setError($this->_db->stderr()); return false; } return (boolean) $result; } /** * Overloaded delete method * * We must override it because of the non-integer primary key * * @access public * @return true if successful otherwise returns and error message */ function delete( $oid=null ) { //if (!$this->canDelete( $msg )) //{ // return $msg; //} $k = $this->_tbl_key; if ($oid) { $this->$k = $oid; } $query = 'DELETE FROM '.$this->_db->nameQuote( $this->_tbl ). ' WHERE '.$this->_tbl_key.' = '. $this->_db->Quote($this->$k); $this->_db->setQuery( $query ); if ($this->_db->query()) { return true; } else { $this->setError($this->_db->getErrorMsg()); return false; } } }