- //* DEBUG: */ echo "<PRE>";
- //* DEBUG: */ print_r($cacheArray['admins']);
-
- // The cache file seems to be fine
- foreach ($cacheArray['admins']['login'] as $k => $login) {
- // Rewrite default_acl
- $cacheArray['admins']['aid'][$login] = $cacheArray['admins']['aid'][$k];
- $cacheArray['admins']['password'][$login] = $cacheArray['admins']['password'][$k];
- $cacheArray['admins']['email'][$login] = $cacheArray['admins']['email'][$k];
-
- // 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
+ // Get "id map"
+ $idMap = $cacheArray['admins']['aid'];
+
+ // Rewrite the cache array
+ for ($idx = (count($idMap) - 1); $idx >= 0; $idx--) {
+ // Rewrite all entries
+ foreach ($cacheArray['admins'] as $key=>$entryArray) {
+ // Rewrite the entry
+ if ($key == "aid") {
+ // Rewrite admin id (use login name as index)
+ $cacheArray['admins']['aid'][$cacheArray['admins']['login'][$idx]] = $entryArray[$idx];
+ } else {
+ // Rewrite regular entry
+ $cacheArray['admins'][$key][$idMap[$idx]] = $entryArray[$idx];
+ }
+
+ // Is the last entry reached?
+ if ($idx == 0) {
+ // Remove it
+ unset($cacheArray['admins'][$key][0]);