X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Floader%2Fload_cache-admin.php;h=234e51ed3f49b6c33631ed5daf08023e4ab39d1f;hp=e6d2822e7d3df623b7ac797d2ef0cb973c1417e1;hb=4db052cce49f60b6d9cc0f1c06b95cdd99f904ad;hpb=3e64a94e122e30dd66db07fd8c8cfae05871c460 diff --git a/inc/loader/load_cache-admin.php b/inc/loader/load_cache-admin.php index e6d2822e7d..234e51ed3f 100644 --- a/inc/loader/load_cache-admin.php +++ b/inc/loader/load_cache-admin.php @@ -35,10 +35,10 @@ if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) { $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php"; require($INC); -} +} // END - if // Let's start with the admins table... -if (($cacheInstance->cache_file("admins", true) == true)) { +if (($cacheInstance->cache_file("admins", true) == true) && ($cacheInstance->ext_version_matches("admins"))) { // Load cache global $cacheArray; $cacheArray['admins'] = $cacheInstance->cache_load(); @@ -57,23 +57,25 @@ if (($cacheInstance->cache_file("admins", true) == true)) { $cacheArray['admins']['password'][$login] = $cacheArray['admins']['password'][$k]; $cacheArray['admins']['email'][$login] = $cacheArray['admins']['email'][$k]; - // Some extra data depening on version + // Some extra data depending on version if (GET_EXT_VERSION("admins") >= "0.3") { $cacheArray['admins']['def_acl'][$login] = $cacheArray['admins']['def_acl'][$k]; if (GET_EXT_VERSION("admins") >= "0.6.7") { $cacheArray['admins']['la_mode'][$login] = $cacheArray['admins']['la_mode'][$k]; - } - } + if (GET_EXT_VERSION("admins") >= "0.7.0") { + $cacheArray['admins']['login_failtures'][$login] = $cacheArray['admins']['login_failtures'][$k]; + $cacheArray['admins']['last_failture'][$login] = $cacheArray['admins']['last_failture'][$k]; + } // END - if + } // END - if + } // END - if //* DEBUG: */ print_r($cacheArray['admins']); // Clear array - if (isset($cacheArray['admins']['aid'][$k])) unset($cacheArray['admins']['aid'][$k]); - if (isset($cacheArray['admins']['def_acl'][$k])) unset($cacheArray['admins']['def_acl'][$k]); - if (isset($cacheArray['admins']['la_mode'][$k])) unset($cacheArray['admins']['la_mode'][$k]); - if (isset($cacheArray['admins']['password'][$k])) unset($cacheArray['admins']['password'][$k]); - if (isset($cacheArray['admins']['email'][$k])) unset($cacheArray['admins']['email'][$k]); - } + foreach (array('aid', 'def_acl', 'la_mode', 'password', 'email', 'login_failtures', 'last_failture') as $rem) { + if (isset($cacheArray['admins'][$rem][$k])) unset($cacheArray['admins'][$rem][$k]); + } // END - foreach + } // END - if //* DEBUG: */ print_r($cacheArray['admins']); @@ -82,8 +84,8 @@ if (($cacheInstance->cache_file("admins", true) == true)) { $cacheArray['admins']['login'][$cacheArray['admins']['aid'][$login]] = $login; if (!in_array($k, $cacheArray['admins']['aid'])) { unset($cacheArray['admins']['login'][$k]); - } - } + } // END - if + } // END - foreach //* DEBUG: */ echo "****\n"; //* DEBUG: */ print_r($cacheArray['admins']); @@ -101,11 +103,13 @@ if (($cacheInstance->cache_file("admins", true) == true)) { } elseif (($_CONFIG['cache_admins'] == "Y") && ($CSS != "1") && ($CSS != "-1")) { // Create cache file $cacheInstance->cache_init("ADMINS"); + $cacheInstance->store_extension_version("admins"); // Load every data from DB to cache file $ADD = ", id, id"; if (GET_EXT_VERSION("admins") >= "0.3") $ADD = ", default_acl AS def_acl"; if (GET_EXT_VERSION("admins") >= "0.6.7") $ADD .= ", la_mode"; + if (GET_EXT_VERSION("admins") >= "0.7.0") $ADD .= ", login_failtures, UNIX_TIMESTAMP(last_failture) AS last_failture"; // Query the database about this $result_admins = SQL_QUERY("SELECT id AS aid, login, password, email".$ADD." @@ -114,7 +118,7 @@ ORDER BY login", __FILE__, __LINE__); while($dummy = SQL_FETCHARRAY($result_admins)) { // Save row $cacheInstance->add_row($dummy); - } + } // END - while // Free memory SQL_FREERESULT($result_admins); @@ -135,7 +139,7 @@ if (GET_EXT_VERSION("admins") >= "0.3") { $CNT = 0; foreach ($cacheArray['admin_acls'] as $k => $array) { $CNT += count($array); - } + } // END - foreach // When there is a period (.) in the result this test will fail and so the cache file is // damaged/corrupted @@ -146,8 +150,8 @@ if (GET_EXT_VERSION("admins") >= "0.3") { // Cache file is corrupted! $cacheInstance->cache_destroy(); unset($cacheArray['admin_acls']); - } - } + } // END - if + } // END - if } elseif (($_CONFIG['cache_acls'] == "Y") && ($CSS != "1") && ($CSS != "-1")) { // Create cache file here $cacheInstance->cache_init("ADMINS_ACLS"); @@ -157,7 +161,7 @@ if (GET_EXT_VERSION("admins") >= "0.3") { while ($DATA = SQL_FETCHARRAY($result)) { // Add row to cache file $cacheInstance->add_row($DATA); - } + } // END - while // Free memory SQL_FREERESULT($result); @@ -165,7 +169,7 @@ if (GET_EXT_VERSION("admins") >= "0.3") { // Close file $cacheInstance->cache_close(); -} +} // END - if // ?>