]> git.mxchange.org Git - mailer.git/blobdiff - inc/mysql-manager.php
Fixes for isAdmin() rewrite of latest commits.
[mailer.git] / inc / mysql-manager.php
index a7ecf50e8dd9596fd862cc2a0c37d06e06f918ba..5dfaf1366ea16d11910be5c7a9bc4de5cacd1cc8 100644 (file)
@@ -565,6 +565,7 @@ function isAdmin () {
        // Is there cache?
        if (isset($GLOBALS[__FUNCTION__])) {
                // Return it
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'isAdmin()=' . intval($GLOBALS[__FUNCTION__]));
                return $GLOBALS[__FUNCTION__];
        } // END - if
 
@@ -578,19 +579,18 @@ function isAdmin () {
        $ret = FALSE;
        $adminId = '0';
        $passwordFromCookie = '';
-       $valPass = '';
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $adminId);
 
        // If admin login is not given take current from cookies...
        if ((isSessionVariableSet('admin_id')) && (isSessionVariableSet('admin_md5'))) {
                // Get admin login and password from session/cookies
-               $adminId    = getCurrentAdminId();
+               $adminId            = getCurrentAdminId();
                $passwordFromCookie = getAdminMd5();
        } // END - if
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'adminId=' . $adminId . 'passwordFromCookie=' . $passwordFromCookie);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'adminId=' . $adminId . ',passwordFromCookie=' . $passwordFromCookie);
 
        // Abort if admin id is zero
-       if ($adminId == '0') {
+       if (($adminId == '0') || (empty($passwordFromCookie))) {
                // A very noisy debug message ...
                //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Current adminId is zero. isSessionVariableSet(admin_id)=' . intval(isSessionVariableSet('admin_id')) . ',isSessionVariableSet(admin_md5)=' . intval(isSessionVariableSet('admin_md5')));
 
@@ -605,32 +605,26 @@ function isAdmin () {
        // Search in array for entry
        if (isset($GLOBALS['admin_hash'])) {
                // Use cached string
-               $valPass = $GLOBALS['admin_hash'];
-       } elseif ((!empty($passwordFromCookie)) && (isAdminHashSet($adminId) === TRUE) && (!empty($adminId))) {
-               // Login data is valid or not?
-               $valPass = encodeHashForCookie(getAdminHash($adminId));
-
-               // Cache it away
-               $GLOBALS['admin_hash'] = $valPass;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using admin_hash=' . $GLOBALS['admin_hash'] . ' from cache');
+       } elseif ((!empty($adminId)) && (!empty($passwordFromCookie)) && (isAdminHashSet($adminId) === TRUE)) {
+               // Get admin hash and hash it
+               $GLOBALS['admin_hash'] = encodeHashForCookie(getAdminHash($adminId));
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'valPass=' . $GLOBALS['admin_hash']);
 
                // Count cache hits
                incrementStatsEntry('cache_hits');
        } elseif ((!empty($adminId)) && ((!isExtensionActive('cache')) || (isAdminHashSet($adminId) === FALSE))) {
                // Get admin hash and hash it
-               $valPass = encodeHashForCookie(getAdminHash($adminId));
-
-               // Cache it away
-               $GLOBALS['admin_hash'] = $valPass;
+               $GLOBALS['admin_hash'] = encodeHashForCookie(getAdminHash($adminId));
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'valPass=' . $GLOBALS['admin_hash']);
        }
 
-       // $valPass shall not be empty. If so, the admin has not found.
-       if (!empty($valPass)) {
-               // Check if password is valid
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '(' . $valPass . '==' . $passwordFromCookie . ')='.intval($valPass == $passwordFromCookie));
-               $GLOBALS[__FUNCTION__] = ($GLOBALS['admin_hash'] == $passwordFromCookie);
-       } // END - if
+       // Check if password is valid
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '(' . $GLOBALS['admin_hash'] . '==' . $passwordFromCookie . ')='.intval($GLOBALS['admin_hash'] == $passwordFromCookie));
+       $GLOBALS[__FUNCTION__] = ((!empty($GLOBALS['admin_hash'])) && ($GLOBALS['admin_hash'] == $passwordFromCookie));
 
        // Return result of comparision
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'isAdmin()=' . intval($GLOBALS[__FUNCTION__]));
        return $GLOBALS[__FUNCTION__];
 }
 
@@ -1147,9 +1141,11 @@ function setCurrentAdminId ($currentAdminId) {
 
 // Get password hash from administrator's login name
 function getAdminHash ($adminId) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'adminId=' . $adminId . ' - ENTERED!');
        // By default an invalid hash is returned
        $data['password'] = -1;
 
+       // Is admin hash set?
        if (isAdminHashSet($adminId)) {
                // Check cache
                $data['password'] = $GLOBALS['cache_array']['admin']['password'][$adminId];
@@ -1175,6 +1171,7 @@ function getAdminHash ($adminId) {
        }
 
        // Return password hash
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'adminId=' . $adminId . ',data[password]=' . $data['password'] . ' - EXIT!');
        return $data['password'];
 }