Changeset 601 for trunk/lib/Auth_SQL.inc.php
- Timestamp:
- Apr 27, 2017 4:43:35 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/Auth_SQL.inc.php
r593 r601 175 175 176 176 // The minimal columns for a table compatible with the Auth_SQL class. 177 $db->query("CREATE TABLE IF NOT EXISTS " . $db->escapeString($this->getParam('db_table')) . " ( 178 " . $this->getParam('db_primary_key') . " MEDIUMINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, 179 " . $this->getParam('db_username_column') . " varchar(255) NOT NULL default '', 180 userpass VARCHAR(255) NOT NULL DEFAULT '', 181 userpass_hashtype TINYINT UNSIGNED NOT NULL DEFAULT '0', 182 first_name VARCHAR(50) NOT NULL DEFAULT '', 183 last_name VARCHAR(50) NOT NULL DEFAULT '', 184 email VARCHAR(255) NOT NULL DEFAULT '', 185 login_abuse_exempt ENUM('true') DEFAULT NULL, 186 blocked ENUM('true') DEFAULT NULL, 187 blocked_reason VARCHAR(255) NOT NULL DEFAULT '', 188 abuse_warning_level TINYINT NOT NULL DEFAULT '0', 189 seconds_online INT NOT NULL DEFAULT '0', 190 last_login_datetime DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', 191 last_access_datetime DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', 192 last_login_ip VARCHAR(45) NOT NULL DEFAULT '0.0.0.0', 193 added_by_user_id SMALLINT DEFAULT NULL, 194 modified_by_user_id SMALLINT DEFAULT NULL, 195 added_datetime DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', 196 modified_datetime DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', 197 KEY " . $this->getParam('db_username_column') . " (" . $this->getParam('db_username_column') . "), 198 KEY userpass (userpass), 199 KEY email (email), 200 KEY last_login_datetime (last_login_datetime), 201 KEY last_access_datetime (last_access_datetime) 202 )"); 177 $db->query(sprintf( 178 "CREATE TABLE IF NOT EXISTS %1\$s ( 179 %2\$s MEDIUMINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, 180 %3\$s varchar(255) NOT NULL default '', 181 userpass VARCHAR(255) NOT NULL DEFAULT '', 182 userpass_hashtype TINYINT UNSIGNED NOT NULL DEFAULT '0', 183 first_name VARCHAR(50) NOT NULL DEFAULT '', 184 last_name VARCHAR(50) NOT NULL DEFAULT '', 185 email VARCHAR(255) NOT NULL DEFAULT '', 186 login_abuse_exempt ENUM('true') DEFAULT NULL, 187 blocked ENUM('true') DEFAULT NULL, 188 blocked_reason VARCHAR(255) NOT NULL DEFAULT '', 189 abuse_warning_level TINYINT NOT NULL DEFAULT '0', 190 seconds_online INT NOT NULL DEFAULT '0', 191 last_login_datetime DATETIME NOT NULL DEFAULT '%4\$s 00:00:00', 192 last_access_datetime DATETIME NOT NULL DEFAULT '%4\$s 00:00:00', 193 last_login_ip VARCHAR(45) NOT NULL DEFAULT '0.0.0.0', 194 added_by_user_id SMALLINT DEFAULT NULL, 195 modified_by_user_id SMALLINT DEFAULT NULL, 196 added_datetime DATETIME NOT NULL DEFAULT '%4\$s 00:00:00', 197 modified_datetime DATETIME NOT NULL DEFAULT '%4\$s 00:00:00', 198 KEY %5\$s (%5\$s), 199 KEY userpass (userpass), 200 KEY email (email), 201 KEY last_login_datetime (last_login_datetime), 202 KEY last_access_datetime (last_access_datetime) 203 )", 204 $db->escapeString($this->getParam('db_table')), 205 $this->getParam('db_primary_key'), 206 $this->getParam('db_username_column'), 207 $db->getParam('zero_date'), 208 $this->getParam('db_username_column') 209 )); 203 210 204 211 if (!$db->columnExists($this->getParam('db_table'), array( … … 232 239 $app->logMsg(sprintf('Dropping and recreating table %s.', $this->getParam('db_login_table')), LOG_INFO, __FILE__, __LINE__); 233 240 } 234 $db->query("CREATE TABLE IF NOT EXISTS " . $this->getParam('db_login_table') . " ( 235 " . $this->getParam('db_primary_key') . " MEDIUMINT UNSIGNED NOT NULL DEFAULT '0', 236 login_datetime DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', 237 remote_ip_binary CHAR(32) NOT NULL DEFAULT '', 238 KEY " . $this->getParam('db_primary_key') . " (" . $this->getParam('db_primary_key') . "), 239 KEY login_datetime (login_datetime), 240 KEY remote_ip_binary (remote_ip_binary) 241 )"); 241 $db->query(sprintf( 242 "CREATE TABLE IF NOT EXISTS %1\$s ( 243 %2\$s MEDIUMINT UNSIGNED NOT NULL DEFAULT '0', 244 login_datetime DATETIME NOT NULL DEFAULT '%3\$s 00:00:00', 245 remote_ip_binary CHAR(32) NOT NULL DEFAULT '', 246 KEY %4\$s (%4\$s), 247 KEY login_datetime (login_datetime), 248 KEY remote_ip_binary (remote_ip_binary) 249 )", 250 $this->getParam('db_login_table'), 251 $this->getParam('db_primary_key'), 252 $db->getParam('zero_date'), 253 $this->getParam('db_primary_key') 254 )); 242 255 243 256 if (!$db->columnExists($this->getParam('db_login_table'), array( … … 327 340 328 341 // FIX ME: Should we check if the session is active? 329 $db->query(" 330 UPDATE " . $this->_params['db_table'] . " SET 331 seconds_online = seconds_online + ABS(UNIX_TIMESTAMP() - UNIX_TIMESTAMP(last_access_datetime)), 332 last_login_datetime = '0000-00-00 00:00:00' 333 WHERE " . $this->_params['db_primary_key'] . " = '" . $this->get('user_id') . "' 334 "); 342 $db->query(sprintf( 343 "UPDATE %s SET 344 seconds_online = seconds_online + ABS(UNIX_TIMESTAMP() - UNIX_TIMESTAMP(last_access_datetime)), 345 last_login_datetime = '%s 00:00:00' 346 WHERE %s = '%s' 347 ", 348 $this->_params['db_table'], 349 $db->getParam('zero_date'), 350 $this->_params['db_primary_key'], 351 $this->get('user_id') 352 )); 335 353 } 336 354 $_SESSION['_auth_sql'][$this->_ns] = array(
Note: See TracChangeset
for help on using the changeset viewer.