From 4fb64ee12fc856499810421c13c55893e7a00bdf Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Fri, 30 Oct 2009 13:11:45 +0000 Subject: [PATCH] isAdmin() uses now for 'caching' its result --- inc/libs/bonus_functions.php | 9 ++--- inc/monthly/monthly_bonus.php | 26 ++++++------- inc/mysql-manager.php | 73 ++++++++++++++++++----------------- 3 files changed, 54 insertions(+), 54 deletions(-) diff --git a/inc/libs/bonus_functions.php b/inc/libs/bonus_functions.php index 678c68c6ba..80238712b2 100644 --- a/inc/libs/bonus_functions.php +++ b/inc/libs/bonus_functions.php @@ -247,22 +247,21 @@ function handleBonusPoints ($mode) { $points = $mode; } + // Check his amount first + $total = countSumTotalData(getConfig('bonus_userid'), 'user_points', 'points') - countSumTotalData(getConfig('bonus_userid'), 'user_data', 'used_points'); + // Subtract points from... switch (getConfig('bonus_mode')) { case 'JACKPOT': // ... jackpot if ((isExtensionActive('jackpot')) && (subtractPointsFromJackpot($points) == -1) && (getConfig('bonus_userid') > 0)) { - // Check points amount first... - $total = countSumTotalData(getConfig('bonus_userid'), 'user_points', 'points') - countSumTotalData(getConfig('bonus_userid'), 'user_data', 'used_points'); if ($total >= $points) { // Subtract points from userid's account - subtractPoints('bonus_payout_jackpot', getConfig('bonus_userid'), $points); + subtractPointsFromJackpot('bonus_payout_jackpot', getConfig('bonus_userid'), $points); } // END - if } // END - if break; case 'UID': // ... userid's account - // Check his amount first - $total = countSumTotalData(getConfig('bonus_userid'), 'user_points', 'points') - countSumTotalData(getConfig('bonus_userid'), 'user_data', 'used_points'); if ($total >= $points) { // Subtract points from userid's account subtractPoints('bonus_payout_userid', getConfig('bonus_userid'), $points); diff --git a/inc/monthly/monthly_bonus.php b/inc/monthly/monthly_bonus.php index 2bbe3d9201..7ae9f44a17 100644 --- a/inc/monthly/monthly_bonus.php +++ b/inc/monthly/monthly_bonus.php @@ -53,7 +53,6 @@ $curr = date('m', time()); if (($curr != getConfig('last_month')) && (getConfig('bonus_ranks') > 0) && (getOutputMode() != 1)) { // Extension 'autopurge' is inactive or purging of inactive accounts is deactivated $whereStatement1 = "WHERE `status`='CONFIRMED'"; - $whereStatement2 = getConfig('bonus_ranks'); // Shall I keep inactive members away from here? (mostly wanted in an "active-rallye" ...) if (isExtensionActive('autopurge')) { @@ -61,34 +60,33 @@ if (($curr != getConfig('last_month')) && (getConfig('bonus_ranks') > 0) && (get if (getConfig('ap_inactive_since') > 0) { // Okay, include last online timestamp $whereStatement1 = "WHERE `status`='CONFIRMED' AND `last_online` >= (UNIX_TIMESTAMP() - {?ap_inactive_since?})"; - $whereStatement2 = getConfig('bonus_ranks'); } // END - if } // END - if // Add more bonus points here $add = ''; // @TODO Rewrite this to a filter - if (getConfig('bonus_click_yn') == 'Y') $add .= " + `turbo_bonus`"; - if (getConfig('bonus_login_yn') == 'Y') $add .= " + `login_bonus`"; - if (getConfig('bonus_order_yn') == 'Y') $add .= " + `bonus_order`"; - if (getConfig('bonus_stats_yn') == 'Y') $add .= " + `bonus_stats`"; - if (getConfig('bonus_ref_yn') == 'Y') $add .= " + `bonus_ref`"; + if (getConfig('bonus_click_yn') == 'Y') $add .= ' + `turbo_bonus`'; + if (getConfig('bonus_login_yn') == 'Y') $add .= ' + `login_bonus`'; + if (getConfig('bonus_order_yn') == 'Y') $add .= ' + `bonus_order`'; + if (getConfig('bonus_stats_yn') == 'Y') $add .= ' + `bonus_stats`'; + if (getConfig('bonus_ref_yn') == 'Y') $add .= ' + `bonus_ref`'; // Shall we add some entries? if (!empty($add)) { - $whereStatement1 .= " AND (0" . $add . ") > 0"; + $whereStatement1 .= ' AND (0' . $add . ') > 0'; } // END - if // Run SQL string to check for accounts - $result_main = SQL_QUERY_ESC("SELECT `userid`, `email`, `gender`, `surname`, `family`, (0".$add.") AS points + $result_main = SQL_QUERY("SELECT + `userid`, `email`, `gender`, `surname`, `family`, (0" . $add . ") AS points FROM `{?_MYSQL_PREFIX?}_user_data` -".$whereStatement1."".$add." +" . $whereStatement1 . " ORDER BY `points` DESC, `userid` ASC -LIMIT %s", - array($whereStatement2), __FILE__, __LINE__); +LIMIT {?bonus_ranks?}", __FILE__, __LINE__); // Some entries were found? if (SQL_NUMROWS($result_main) > 0) { @@ -104,12 +102,12 @@ LIMIT %s", $content['points'] = translateComma($content['points']); // Load email template and email it away - $message = loadEmailTemplate('member_bonus', $content['points'], bigintval($content['userid'])); + $message = loadEmailTemplate('member_bonus', $content, bigintval($content['userid'])); sendEmail($content['email'], getMessage('BONUS_MONTHLY_ONLINE_BONUS'), $message); } // END - if } // END - while - // Reset accounts + // Reset all accounts $result = SQL_QUERY('UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `turbo_bonus`=0, diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php index 47366597c9..9c5f649dd8 100644 --- a/inc/mysql-manager.php +++ b/inc/mysql-manager.php @@ -651,49 +651,52 @@ 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)); - - // 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__); + // Do we have cache? + if (!isset($GLOBALS['is_admin'][$admin] + // 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__); - // 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); + // 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); - // Temporary cache it - setAdminHash($admin, $passDB); + // Temporary cache it + setAdminHash($admin, $passDB); - // Generate password hash - $valPass = generatePassString($passDB); - } // END - if + // Generate password hash + $valPass = generatePassString($passDB); + } // END - if - // Free memory - SQL_FREERESULT($result); - } + // 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')))); + 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 } // END - if // Return result of comparision - return $ret; + return $GLOBALS['is_admin'][$admin]; } // Generates a list of "max receiveable emails per day" -- 2.39.5