Fix for guest menu (opps)
[mailer.git] / inc / mysql-manager.php
index c32622cf8ea823275aa1addee9cdfb5b1a98ab61..79fcc639933dfe75f3a4648fd43923d552ff89a3 100644 (file)
@@ -345,7 +345,7 @@ function ADD_MENU($MODE, $act, $wht) {
                        // Load menu header template
                        LOAD_TEMPLATE($MODE."_menu_title", false, $content);
 
-                       $result_sub = SQL_QUERY_ESC("SELECT title, what FROM "._MYSQL_PREFIX."_%s_menu WHERE action='%s' AND what != '' AND what IS NOT NULL".$AND." ORDER BY sort",
+                       $result_sub = SQL_QUERY_ESC("SELECT title, what FROM "._MYSQL_PREFIX."_%s_menu WHERE action='%s' AND what != '' AND what IS NOT NULL ".$AND." ORDER BY sort",
                         array($MODE, $main_action), __FILE__, __LINE__);
                        $ctl = SQL_NUMROWS($result_sub);
                        if ($ctl > 0) {
@@ -440,12 +440,18 @@ function IS_ADMIN($admin="")
        //* DEBUG: */ echo __LINE__."ADMIN:".$admin."/".$passCookie."<br />";
 
        // Search in array for entry
-       if ((!empty($passCookie)) && (isset($cacheArray['admins']['password'][$admin])) && (!empty($admin))) {
+       if (isset($cacheArray['admin_hash'])) {
+               // Use cached string
+               $valPass = $cacheArray['admin_hash'];
+       } elseif ((!empty($passCookie)) && (isset($cacheArray['admins']['password'][$admin])) && (!empty($admin))) {
                // Count cache hits
                $_CONFIG['cache_hits']++;
 
                // Login data is valid or not?
                $valPass = generatePassString($cacheArray['admins']['password'][$admin]);
+
+               // Cache it away
+               $cacheArray['admin_hash'] = $valPass;
        } elseif (!empty($admin)) {
                // Search for admin
                $result = SQL_QUERY_ESC("SELECT HIGH_PRIORITY password FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
@@ -624,9 +630,7 @@ function IS_MEMBER()
 
                // Free memory
                SQL_FREERESULT($result);
-       }
-        else
-       {
+       } else {
                // Cookie data is invalid!
                //* DEBUG: */ echo __LINE__."///<br />";
                destroy_user_session();
@@ -634,6 +638,8 @@ function IS_MEMBER()
                // Remove array elements to prevent errors
                unset($GLOBALS['userid']);
        }
+
+       // Return status
        return $ret;
 }
 //