X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fmysql-manager.php;h=836d1d850dc9fa3ef5080c8ec5571491646514c9;hb=e09ef42fa5cc81f733f9c8d1dc741a26f74553ef;hp=459eeb549dbddea15b6026128426f6c9c5dfe789;hpb=462f162c88623c704cb340ab769ed1fc97de63a3;p=mailer.git diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php index 459eeb549d..836d1d850d 100644 --- a/inc/mysql-manager.php +++ b/inc/mysql-manager.php @@ -253,7 +253,7 @@ function checkModulePermissions ($mod = '') { // Destroy cache here // @TODO Rewrite this to a filter - if (getOutputMode() == 0) rebuildCacheFile('modules', 'modules'); + if ((getOutputMode() == 0) || (getOutputMode() == -1)) rebuildCacheFile('modules', 'modules'); // And reload data unset($GLOBALS['module_status'][$mod]); @@ -651,49 +651,55 @@ function isAdmin ($admin = '') { } // END - if //* DEBUG: */ print(__FUNCTION__.':'.$admin.'/'.$passCookie.'
'); - // Search in array for entry - if (isset($GLOBALS['admin_hash'])) { - // Use cached string - $valPass = $GLOBALS['admin_hash']; - } elseif ((!empty($passCookie)) && (isAdminHashSet($admin) === true) && (!empty($admin))) { - // Login data is valid or not? - $valPass = generatePassString(getAdminHash($admin)); + // Do we have cache? + if (!isset($GLOBALS['is_admin'][$admin])) { + // Init it with failed + $GLOBALS['is_admin'][$admin] = false; + + // Search in array for entry + if (isset($GLOBALS['admin_hash'])) { + // Use cached string + $valPass = $GLOBALS['admin_hash']; + } elseif ((!empty($passCookie)) && (isAdminHashSet($admin) === true) && (!empty($admin))) { + // Login data is valid or not? + $valPass = generatePassString(getAdminHash($admin)); + + // Cache it away + $GLOBALS['admin_hash'] = $valPass; + + // Count cache hits + incrementStatsEntry('cache_hits'); + } elseif ((!empty($admin)) && ((!isExtensionActive('cache'))) || (isAdminHashSet($admin) === false)) { + // Search for admin + $result = SQL_QUERY_ESC("SELECT HIGH_PRIORITY `password` FROM `{?_MYSQL_PREFIX?}_admins` WHERE `login`='%s' LIMIT 1", + array($admin), __FUNCTION__, __LINE__); - // Cache it away - $GLOBALS['admin_hash'] = $valPass; + // Is he admin? + $passDB = ''; + if (SQL_NUMROWS($result) == 1) { + // Admin login was found so let's load password from DB + list($passDB) = SQL_FETCHROW($result); - // Count cache hits - incrementStatsEntry('cache_hits'); - } elseif ((!empty($admin)) && ((!isExtensionActive('cache'))) || (isAdminHashSet($admin) === false)) { - // Search for admin - $result = SQL_QUERY_ESC("SELECT HIGH_PRIORITY `password` FROM `{?_MYSQL_PREFIX?}_admins` WHERE `login`='%s' LIMIT 1", - array($admin), __FUNCTION__, __LINE__); + // Temporary cache it + setAdminHash($admin, $passDB); - // Is he admin? - $passDB = ''; - if (SQL_NUMROWS($result) == 1) { - // Admin login was found so let's load password from DB - list($passDB) = SQL_FETCHROW($result); + // Generate password hash + $valPass = generatePassString($passDB); + } // END - if - // Temporary cache it - setAdminHash($admin, $passDB); + // Free memory + SQL_FREERESULT($result); + } - // Generate password hash - $valPass = generatePassString($passDB); + if (!empty($valPass)) { + // Check if password is valid + //* DEBUG: */ print(__FUNCTION__ . ':(' . $valPass . '==' . $passCookie . ')='.intval($valPass == $passCookie).'
'); + $GLOBALS['is_admin'][$admin] = (($valPass == $passCookie) || ((strlen($valPass) == 32) && ($valPass == md5($passCookie))) || (($valPass == '*FAILED*') && (!isExtensionActive('cache')))); } // END - if - - // Free memory - SQL_FREERESULT($result); - } - - if (!empty($valPass)) { - // Check if password is valid - //* DEBUG: */ print(__FUNCTION__ . ':(' . $valPass . '==' . $passCookie . ')='.intval($valPass == $passCookie).'
'); - $ret = (($valPass == $passCookie) || ((strlen($valPass) == 32) && ($valPass == md5($passCookie))) || (($valPass == '*FAILED*') && (!isExtensionActive('cache')))); } // END - if // Return result of comparision - return $ret; + return $GLOBALS['is_admin'][$admin]; } // Generates a list of "max receiveable emails per day" @@ -1919,7 +1925,7 @@ VALUES ('%s','%s','%s','%s','%s','NEW', UNIX_TIMESTAMP(),'%s','%s','%s','%s')", // Generate a receiver list for given category and maximum receivers function generateReceiverList ($cat, $receiver, $mode = '') { // Init variables - $CAT_TABS = $cat."=%s"; + $CAT_TABS = ''; $CAT_WHERE = ''; $receiverList = ''; $result = false; @@ -1938,7 +1944,7 @@ function generateReceiverList ($cat, $receiver, $mode = '') { if ($cat > 0) { // Select category $CAT_TABS = "LEFT JOIN `{?_MYSQL_PREFIX?}_user_cats` AS c ON d.userid=c.userid"; - $CAT_WHERE = " AND c.cat_id=%s"; + $CAT_WHERE = sprintf(" AND c.cat_id=%s", $cat); } // END - if // Exclude users in holiday? @@ -1951,14 +1957,12 @@ function generateReceiverList ($cat, $receiver, $mode = '') { // Only include HTML receivers $result = SQL_QUERY_ESC("SELECT d.userid FROM `{?_MYSQL_PREFIX?}_user_data` AS d ".$CAT_TABS." WHERE d.`status`='CONFIRMED' AND d.`html`='Y'".$CAT_WHERE." ORDER BY d.{?order_select?} {?order_mode?} LIMIT %s", array( - $cat, $receiver ), __FUNCTION__, __LINE__); } else { // Include all $result = SQL_QUERY_ESC("SELECT d.userid FROM `{?_MYSQL_PREFIX?}_user_data` AS d ".$CAT_TABS." WHERE d.`status`='CONFIRMED'".$CAT_WHERE." ORDER BY d.{?order_select?} {?order_mode?} LIMIT %s", array( - $cat, $receiver ), __FUNCTION__, __LINE__); }