ext was missing, fixed error message
[mailer.git] / inc / libs / user_functions.php
index 3fd3570e6c1ba9207889046c1d18ef453fe388cf..6fc8006e05938e2d0e3498c5d5aefdfccf38a9b5 100644 (file)
@@ -264,6 +264,7 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p
        $dmy = '';
        $add = '';
        $errorCode = '0';
+       $ext = '';
 
        // Add last_login if available
        $lastOnline = '';
@@ -281,20 +282,24 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p
        );
 
        // Check login data
-       if ((isExtensionActive('nickname')) && (isNicknameOrUserid($userid))) {
+       if ((isExtensionActive('nickname')) && (isNicknameUsed($userid))) {
                // Nickname entered
                fetchUserData($userid, 'nickname');
+       } elseif (isNicknameUsed($userid)) {
+               // No nickname installed
+               $errorCode = getCode('EXTENSION_PROBLEM');
+               $ext = 'nickname';
        } else {
                // Direct userid entered
                fetchUserData($userid);
        }
 
-       // Load entry
-       $content = getUserDataArray();
-       if (!empty($content['userid'])) $userid = bigintval($content['userid']);
-
        // Is there an entry?
-       if ((isUserDataValid()) && (getUserData('status') == 'CONFIRMED') && ((isNicknameUsed($content['userid'] === true) && (!empty($content['userid']))) || ($content['userid'] == $userid))) {
+       if (((isUserDataValid()) && (getUserData('status') == 'CONFIRMED') && (!empty($content['userid']))) || ($content['userid'] == $userid)) {
+               // Load entry
+               $content = getUserDataArray();
+               if (!empty($content['userid'])) $userid = bigintval($content['userid']);
+
                // Check for old MD5 passwords
                if ((strlen($content['password']) == 32) && (md5($passwd) == $content['password'])) {
                        // Just set the hash to the password from DB... :)
@@ -372,7 +377,7 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p
                        // Wrong password!
                        $errorCode = getCode('WRONG_PASS');
                }
-       } elseif (((isNicknameUsed($content['userid'])) && (!empty($content['userid']))) || ($content['userid'] == $userid)) {
+       } elseif (((isExtensionActive('nickname')) && (isNicknameUsed($content['userid'])) && (!empty($content['userid']))) || ($content['userid'] == $userid)) {
                // Other account status?
                if (fetchUserData($userid)) {
                        // Create an error code from given status
@@ -381,7 +386,7 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p
                        // id not found!
                        $errorCode = getCode('WRONG_ID');
                }
-       } else {
+       } elseif ($errorCode == '0') {
                // id not found!
                $errorCode = getCode('WRONG_ID');
        }
@@ -390,6 +395,9 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p
        if ($errorCode > 0) {
                // Then reconstruct the URL
                $URL = $errorUrl . $errorCode;
+
+               // Extension set? Then add it as well.
+               if (!empty($ext)) $URL .= '&ext=' . $ext;
        } // END - if
 
        // Return URL