execute_sql("ALTER TABLE {$CFG->prefix}user ADD INDEX auth (auth)");
}
+ if ($oldversion < 2004093001) { // add new table for sessions storage
+ execute_sql(" CREATE TABLE `{$CFG->prefix}sessions` (
+ `sesskey` char(32) NOT null,
+ `expiry` int(11) unsigned NOT null,
+ `expireref` varchar(64),
+ `data` text NOT null,
+ PRIMARY KEY (`sesskey`),
+ KEY (`expiry`)
+ ) TYPE=MyISAM COMMENT='Optional database session storage, not used by default';");
+ }
+
return $result;
}
# --------------------------------------------------------
+#
+# Table structure for table `sessions`
+#
+
+CREATE TABLE `prefix_sessions` (
+ `sesskey` char(32) NOT null,
+ `expiry` int(11) unsigned NOT null,
+ `expireref` varchar(64),
+ `data` text NOT null,
+ PRIMARY KEY (`sesskey`),
+ KEY (`expiry`)
+) TYPE=MyISAM COMMENT='Optional database session storage, not used by default';
+# --------------------------------------------------------
+
#
# Table structure for table `user`
#
if ($oldversion < 2004092000) { //redoing this just to be sure that column type is text (postgres type changes didnt work when this was done first time)
table_column("config", "value", "value", "text", "", "", "");
}
+
+ if ($oldversion < 2004093001) { // add new table for sessions storage
+ execute_sql(" CREATE TABLE {$CFG->prefix}sessions (
+ sesskey char(32) PRIMARY KEY,
+ expiry integer NOT null,
+ expireref varchar(64),
+ data text NOT null
+ );");
+
+ execute_sql(" CREATE INDEX {$CFG->prefix}sessions_expiry_idx ON {$CFG->prefix}sessions (expiry)");
+ }
return $result;
timemodified integer NOT NULL default '0'
);
+CREATE TABLE prefix_sessions (
+ sesskey char(32) PRIMARY KEY,
+ expiry integer NOT null,
+ expireref varchar(64),
+ data text NOT null
+);
+
+CREATE INDEX prefix_sessions_expiry_idx ON prefix_sessions (expiry);
CREATE TABLE prefix_cache_filters (
id SERIAL PRIMARY KEY,
'allusersaresitestudents' => true,
'auth' => 'email',
'auth_pop3mailbox' => 'INBOX',
- 'autologinguests' => 0,
+ 'autologinguests' => 0,
'cachetext' => 60,
'changepassword' => true,
'country' => '',
+ 'dbsessions' => false,
'debug' => 7,
- 'deleteunconfirmed' => 168,
- 'digestmailtime' => 17,
+ 'deleteunconfirmed' => 168,
+ 'digestmailtime' => 17,
'displayloginfailures' => '',
- 'enablerssfeeds' => 0,
+ 'enablerssfeeds' => 0,
'enrol' => 'internal',
- 'extendedusernamechars' => false,
+ 'extendedusernamechars' => false,
'editorbackgroundcolor' => '#ffffff',
'editorfontfamily' => 'Trebuchet MS,Verdana,Arial,Helvetica,sans-serif',
'editorfontsize' => '',
- 'editorkillword' => 1,
- 'editorspelling' => 0,
+ 'editorkillword' => 1,
+ 'editorspelling' => 0,
'editorfontlist' => 'Trebuchet:Trebuchet MS,Verdana,Arial,Helvetica,sans-serif;Arial:arial,helvetica,sans-serif;Courier New:courier new,courier,monospace;Georgia:georgia,times new roman,times,serif;Tahoma:tahoma,arial,helvetica,sans-serif;Times New Roman:times new roman,times,serif;Verdana:verdana,arial,helvetica,sans-serif;Impact:impact;Wingdings:wingdings',
'filteruploadedfiles' => true,
'forcelogin' => false,
'secureforms' => false,
'sessioncookie' => '',
'sessiontimeout' => 7200,
- 'showsiteparticipantslist' => 0,
+ 'showsiteparticipantslist' => 0,
'slasharguments' => 1,
'smtphosts' => '',
'smtppass' => '',
'smtpuser' => '',
'style' => 'default',
- 'teacherassignteachers' => true,
+ 'teacherassignteachers' => true,
'template' => 'default',
'textfilters' => 'mod/glossary/dynalink.php',
- 'timezone' => 99,
+ 'timezone' => 99,
'theme' => 'standard',
'unzip' => '',
'zip' => ''
}
$smarty->compile_dir = $CFG->dataroot .'/cache';
-/// Set session timeouts
- if (!empty($CFG->sessiontimeout)) {
- ini_set('session.gc_maxlifetime', $CFG->sessiontimeout);
- }
-
-/// Set custom session path
- if (!file_exists($CFG->dataroot .'/sessions')) {
- make_upload_directory('sessions');
+/// Set up session handling
+ if (empty($CFG->dbsessions)) { /// File-based sessions
+ if (!empty($CFG->sessiontimeout)) {
+ ini_set('session.gc_maxlifetime', $CFG->sessiontimeout);
+ }
+
+ if (!file_exists($CFG->dataroot .'/sessions')) {
+ make_upload_directory('sessions');
+ }
+ ini_set('session.save_path', $CFG->dataroot .'/sessions');
+
+ } else { /// Database sessions
+ ini_set('session.save_handler', 'user');
+
+ $ADODB_SESSION_DRIVER = $CFG->dbtype;
+ $ADODB_SESSION_CONNECT = $CFG->dbhost;
+ $ADODB_SESSION_USER = $CFG->dbuser;
+ $ADODB_SESSION_PWD = $CFG->dbpass;
+ $ADODB_SESSION_DB = $CFG->dbname;
+ $ADODB_SESSION_TBL = $CFG->prefix.'sessions';
+
+ require_once($CFG->libdir. '/adodb/session/adodb-session.php');
}
- ini_set('session.save_path', $CFG->dataroot .'/sessions');
/// Set sessioncookie variable if it isn't already
if (!isset($CFG->sessioncookie)) {
// This is compared against the values stored in the database to determine
// whether upgrades should be performed (see lib/db/*.php)
- $version = 2004092700; // YYYYMMDD = date of first major branch release 1.4
+ $version = 2004093001; // YYYYMMDD = date of first major branch release 1.4
// XY = increments within a single day
$release = '1.5 UNSTABLE DEVELOPMENT'; // Human-friendly version name