X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Floader%2Fload_cache-admin.php;h=9210709caa2b5394c7efcb0d2ce86767ce5445ef;hb=6d513e61a583f5366ab948be9e819343f726852b;hp=e6d2822e7d3df623b7ac797d2ef0cb973c1417e1;hpb=3e64a94e122e30dd66db07fd8c8cfae05871c460;p=mailer.git diff --git a/inc/loader/load_cache-admin.php b/inc/loader/load_cache-admin.php index e6d2822e7d..9210709caa 100644 --- a/inc/loader/load_cache-admin.php +++ b/inc/loader/load_cache-admin.php @@ -32,13 +32,13 @@ ************************************************************************/ // Some security stuff... -if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) { +if (!defined('__SECURITY')) { $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,10 +118,16 @@ 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); + + // Close cache + $cacheInstance->cache_close(); + + // Reload the cache + require(__FILE__); } // Close file @@ -130,42 +140,27 @@ if (GET_EXT_VERSION("admins") >= "0.3") { // Load referral system from cache global $cacheArray; $cacheArray['admin_acls'] = $cacheInstance->cache_load(); - - // Valid cache file - $CNT = 0; - foreach ($cacheArray['admin_acls'] as $k => $array) { - $CNT += count($array); - } - - // When there is a period (.) in the result this test will fail and so the cache file is - // damaged/corrupted - if (count($cacheArray['admin_acls']) > 0) { - $TEST = "failed"; - if (count($cacheArray['admin_acls']) > 0 ) $TEST = ($CNT / (count($cacheArray['admin_acls']))); - if ($TEST != bigintval($TEST)) { - // Cache file is corrupted! - $cacheInstance->cache_destroy(); - unset($cacheArray['admin_acls']); - } - } } elseif (($_CONFIG['cache_acls'] == "Y") && ($CSS != "1") && ($CSS != "-1")) { // Create cache file here $cacheInstance->cache_init("ADMINS_ACLS"); // Load all modules and their data $result = SQL_QUERY("SELECT id, admin_id, action_menu, what_menu, access_mode FROM "._MYSQL_PREFIX."_admins_acls ORDER BY admin_id, action_menu, what_menu", __FILE__, __LINE__); - while ($DATA = SQL_FETCHARRAY($result)) { + while ($data = SQL_FETCHARRAY($result)) { // Add row to cache file - $cacheInstance->add_row($DATA); - } + $cacheInstance->add_row($data); + } // END - while // Free memory SQL_FREERESULT($result); + + // Reload the cache + require(__FILE__); } // Close file $cacheInstance->cache_close(); -} +} // END - if // ?>