From c83e419cd563049c7db0a0484caab329c5e59570 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Sun, 22 Aug 2010 13:42:36 +0000 Subject: [PATCH] Better in ext-user and dependency of confirmation with ext-user --- DOCS/TODOs.txt | 2 +- inc/libs/user_functions.php | 105 +++++++++++++++++++++++++++++ inc/modules/guest/what-confirm.php | 5 ++ inc/mysql-manager.php | 105 ----------------------------- 4 files changed, 111 insertions(+), 106 deletions(-) diff --git a/DOCS/TODOs.txt b/DOCS/TODOs.txt index 214df446bc..e460fa7985 100644 --- a/DOCS/TODOs.txt +++ b/DOCS/TODOs.txt @@ -86,6 +86,7 @@ ./inc/libs/user_functions.php:327: // @TODO Make this filter working: $ADDON = runFilterChain('post_login_update', $content); ./inc/libs/user_functions.php:347: // @TODO Make this filter working: $url = runFilterChain('do_login', array('content' => $content, 'addon' => $ADDON)); ./inc/libs/user_functions.php:423: // @TODO We should try to rewrite this to fetchUserData() somehow +./inc/libs/user_functions.php:609: // @TODO Try to rewrite the following unset() ./inc/libs/yoomedia_functions.php:116: $response = YOOMEDIA_QUERY_API('out_textmail.php', true); // @TODO Ask Yoo!Media for test script ./inc/load_config.php:77: // @TODO Rewrite them to avoid this else block ./inc/loader/load_cache-extension.php:13: * @TODO Rewrite this whole file to load_cache-extensions.php * @@ -177,7 +178,6 @@ ./inc/mysql-manager.php:1536: // @TODO Rewrite this to a filter ./inc/mysql-manager.php:1903: // @TODO Rewrite this to a filter ./inc/mysql-manager.php:1947:// @TODO Fix inconsistency between last_module and getWhat() -./inc/mysql-manager.php:2022: // @TODO Try to rewrite the following unset() ./inc/mysql-manager.php:370: // @TODO Try to rewrite this to one or more functions ./inc/mysql-manager.php:46:// @TODO Can we cache this? ./inc/reset/reset_beg.php:51:// @TODO This should be converted in a daily beg rallye diff --git a/inc/libs/user_functions.php b/inc/libs/user_functions.php index b4fefbb35d..187afc7615 100644 --- a/inc/libs/user_functions.php +++ b/inc/libs/user_functions.php @@ -542,6 +542,111 @@ function insertUserStatsRecord ($userid, $statsType, $statsData) { } } +// Confirms a user account +function doConfirmUserAccount () { + // Init content + $content = array( + 'message' => '{--GUEST_CONFIRMED_FAILED--}', + 'userid' => 0, + ); + + // Initialize the user id + $userid = '0'; + + // Search for an unconfirmed or confirmed account + $result = SQL_QUERY_ESC("SELECT `userid`, `email`, `refid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `user_hash`='%s' AND (`status`='UNCONFIRMED' OR `status`='CONFIRMED') LIMIT 1", + array(getRequestParameter('hash')), __FILE__, __LINE__); + if (SQL_NUMROWS($result) == 1) { + // Ok, he want's to confirm now so we load some data + list($userid, $email, $refid) = SQL_FETCHROW($result); + + // Fetch user data + if (!fetchUserData($userid)) { + // Not found, should not happen + debug_report_bug(__FILE__, __LINE__, 'User account ' . $userid . ' not found.'); + } // END - if + + // Load all data and add points + $content = getUserDataArray(); + + // Unlock his account (but only when it is on UNCONFIRMED!) + SQL_QUERY_ESC("UPDATE + `{?_MYSQL_PREFIX?}_user_data` +SET + `status`='CONFIRMED', + `ref_payout`={?ref_payout?}, + `user_hash`=NULL +WHERE + `user_hash`='%s' AND + `status`='UNCONFIRMED' +LIMIT 1", + array(getRequestParameter('hash')), __FILE__, __LINE__); + if (SQL_AFFECTEDROWS() == 1) { + // Send email if updated + $message = loadEmailTemplate('confirm-member', $content, bigintval($userid)); + + // And send him right away the confirmation mail + sendEmail($email, '{--GUEST_THANX_CONFIRM--}', $message); + + // Maybe he got "referaled"? + if (($refid > 0) && ($refid != $userid)) { + // Select the referal userid + if (fetchUserData($refid)) { + // Update ref counter... + updateReferalCounter($refid); + + // If version matches add ref bonus to refid's account + if ((isExtensionInstalledAndNewer('bonus', '0.4.4')) && (isBonusRallyeActive())) { + // Add points (directly only!) + SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `bonus_ref`=`bonus_ref`+{?bonus_ref?} WHERE `userid`=%s LIMIT 1", + array(bigintval($refid)), __FILE__, __LINE__); + + // Subtract points from system + handleBonusPoints(getConfig('bonus_ref')); + } // END - if + + // Add one-time referal bonus over referal system or directly + // @TODO Try to rewrite the following unset() + unset($GLOBALS['ref_level']); + addPointsThroughReferalSystem('referal_bonus', $refid, getPointsRef(), true, bigintval($userid), getConfig('reg_points_mode')); + } // END - if + } // END - if + + if (isExtensionActive('rallye')) { + // Add user to rallye (or not?) + addUserToReferalRallye(bigintval($userid)); + } // END - if + + // Account confirmed! + if (isExtensionActive('lead')) { + // Set special lead cookie + setSession('lead_userid', bigintval($userid)); + + // Lead-Code mode enabled + redirectToUrl('lead-confirm.php'); + } else { + $content['message'] = '{--GUEST_CONFIRMED_DONE--}'; + $content['userid'] = bigintval($userid); + } + } elseif (isExtensionActive('lead')) { + // Set special lead cookie + setSession('lead_userid', bigintval($userid)); + + // Lead-Code mode enabled + redirectToUrl('lead-confirm.php'); + } else { + // Nobody was found unter this hash key... or our new member want's to confirm twice? + $content['message'] = '{--GUEST_CONFIRMED_TWICE--}'; + } + } else { + // Nobody was found unter this hash key... or our new member want's to confirm twice? + $content['message'] = '{--GUEST_CONFIRMED_TWICE--}'; + } + + // Load template + loadTemplate('admin_settings_saved', false, $content['message']); +} + // Expression call-back function for fetching user data function doExpressionUser ($data) { // Use current userid by default diff --git a/inc/modules/guest/what-confirm.php b/inc/modules/guest/what-confirm.php index a971107401..a3f4e86175 100644 --- a/inc/modules/guest/what-confirm.php +++ b/inc/modules/guest/what-confirm.php @@ -45,6 +45,11 @@ if (!defined('__SECURITY')) { // Add description as navigation point addMenuDescription('guest', __FILE__); +if ((!isExtensionActive('user')) && (!isAdmin())) { + loadTemplate('admin_settings_saved', false, generateExtensionInactiveNotInstalledMessage('user')); + return; +} // END - if + if (isGetRequestParameterSet('hash')) { // Do user account confirmation doConfirmUserAccount(getRequestParameter('hash')); diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php index 1342824775..18b9be1b48 100644 --- a/inc/mysql-manager.php +++ b/inc/mysql-manager.php @@ -1955,110 +1955,5 @@ function updateLastActivity($userid) { ), __FUNCTION__, __LINE__); } -// Confirms a user account -function doConfirmUserAccount () { - // Init content - $content = array( - 'message' => '{--GUEST_CONFIRMED_FAILED--}', - 'userid' => 0, - ); - - // Initialize the user id - $userid = '0'; - - // Search for an unconfirmed or confirmed account - $result = SQL_QUERY_ESC("SELECT `userid`, `email`, `refid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `user_hash`='%s' AND (`status`='UNCONFIRMED' OR `status`='CONFIRMED') LIMIT 1", - array(getRequestParameter('hash')), __FILE__, __LINE__); - if (SQL_NUMROWS($result) == 1) { - // Ok, he want's to confirm now so we load some data - list($userid, $email, $refid) = SQL_FETCHROW($result); - - // Fetch user data - if (!fetchUserData($userid)) { - // Not found, should not happen - debug_report_bug(__FILE__, __LINE__, 'User account ' . $userid . ' not found.'); - } // END - if - - // Load all data and add points - $content = getUserDataArray(); - - // Unlock his account (but only when it is on UNCONFIRMED!) - SQL_QUERY_ESC("UPDATE - `{?_MYSQL_PREFIX?}_user_data` -SET - `status`='CONFIRMED', - `ref_payout`={?ref_payout?}, - `user_hash`=NULL -WHERE - `user_hash`='%s' AND - `status`='UNCONFIRMED' -LIMIT 1", - array(getRequestParameter('hash')), __FILE__, __LINE__); - if (SQL_AFFECTEDROWS() == 1) { - // Send email if updated - $message = loadEmailTemplate('confirm-member', $content, bigintval($userid)); - - // And send him right away the confirmation mail - sendEmail($email, '{--GUEST_THANX_CONFIRM--}', $message); - - // Maybe he got "referaled"? - if (($refid > 0) && ($refid != $userid)) { - // Select the referal userid - if (fetchUserData($refid)) { - // Update ref counter... - updateReferalCounter($refid); - - // If version matches add ref bonus to refid's account - if ((isExtensionInstalledAndNewer('bonus', '0.4.4')) && (isBonusRallyeActive())) { - // Add points (directly only!) - SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `bonus_ref`=`bonus_ref`+{?bonus_ref?} WHERE `userid`=%s LIMIT 1", - array(bigintval($refid)), __FILE__, __LINE__); - - // Subtract points from system - handleBonusPoints(getConfig('bonus_ref')); - } // END - if - - // Add one-time referal bonus over referal system or directly - // @TODO Try to rewrite the following unset() - unset($GLOBALS['ref_level']); - addPointsThroughReferalSystem('referal_bonus', $refid, getPointsRef(), true, bigintval($userid), getConfig('reg_points_mode')); - } // END - if - } // END - if - - if (isExtensionActive('rallye')) { - // Add user to rallye (or not?) - addUserToReferalRallye(bigintval($userid)); - } // END - if - - // Account confirmed! - if (isExtensionActive('lead')) { - // Set special lead cookie - setSession('lead_userid', bigintval($userid)); - - // Lead-Code mode enabled - redirectToUrl('lead-confirm.php'); - } else { - $content['message'] = '{--GUEST_CONFIRMED_DONE--}'; - $content['userid'] = bigintval($userid); - } - } elseif (isExtensionActive('lead')) { - // Set special lead cookie - setSession('lead_userid', bigintval($userid)); - - // Lead-Code mode enabled - redirectToUrl('lead-confirm.php'); - } else { - // Nobody was found unter this hash key... or our new member want's to confirm twice? - $content['message'] = '{--GUEST_CONFIRMED_TWICE--}'; - } - } else { - // Nobody was found unter this hash key... or our new member want's to confirm twice? - $content['message'] = '{--GUEST_CONFIRMED_TWICE--}'; - } - - // Load template - loadTemplate('admin_settings_saved', false, $content['message']); -} - // [EOF] ?> -- 2.39.5