]> git.mxchange.org Git - mailer.git/blobdiff - inc/libs/admins_functions.php
Rewrites to use fake POST data
[mailer.git] / inc / libs / admins_functions.php
index c1987fb465b8c4cfd7b5841f26f25a63ab040f4f..e81d6a13894c10fa0445d82050399f8149f69ce9 100644 (file)
@@ -169,12 +169,15 @@ LIMIT 1",
 }
 
 // Change a lot admin account
-function adminsChangeAdminAccount ($postData, $element = '') {
+function adminsChangeAdminAccount ($postData, $element = '', $displayMessage = true) {
        // Begin the update
        $cache_update = '0';
+       $message = '';
+
        foreach ($postData['login'] as $id => $login) {
                // Secure id number
                $id = bigintval($id);
+               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'id=' . $id . ',login=' . $login);
 
                // When both passwords match update admin account
                if ((!empty($element)) && (isset($postData[$element]))) {
@@ -184,7 +187,7 @@ function adminsChangeAdminAccount ($postData, $element = '') {
 
                        // Admin account saved
                        $message = '{--ADMIN_ACCOUNT_SAVED--}';
-               } elseif ((isset($postData['pass1'])) && (isset($postData['pass2']))) {
+               } elseif ((!empty($postData['pass1'])) && (!empty($postData['pass2']))) {
                        // Update only if both passwords match
                        if (($postData['pass1'][$id] == $postData['pass2'][$id])) {
                                // Save only when both passwords are the same (also when they are empty)
@@ -194,7 +197,9 @@ function adminsChangeAdminAccount ($postData, $element = '') {
                                $hash = generateHash($postData['pass1'][$id]);
 
                                // Save password when set
-                               if (!empty($postData['pass1'][$id])) $add = sprintf(", `password`='%s'", SQL_ESCAPE($hash));
+                               if (!empty($postData['pass1'][$id])) {
+                                       $add = sprintf(", `password`='%s'", SQL_ESCAPE($hash));
+                               } // END - if
 
                                // Get admin's id
                                $adminId = getCurrentAdminId();
@@ -272,7 +277,9 @@ LIMIT 1",
                        $SQL = 'UPDATE `{?_MYSQL_PREFIX?}_admins` SET ';
                        foreach ($postData as $entry => $value) {
                                // Skip login/id entry
-                               if (in_array($entry, array('login', 'id'))) continue;
+                               if (in_array($entry, array('login', 'id'))) {
+                                       continue;
+                               } // END - if
 
                                // Do we have a non-string (e.g. number, NULL, NOW() or back-tick at the beginning?
                                if (is_null($value[$id])) {
@@ -292,16 +299,30 @@ LIMIT 1",
 
                        // Run it
                        SQL_QUERY_ESC($SQL, array(bigintval($id)), __FUNCTION__, __LINE__);
+
+                       // Was it updated?
+                       if (SQL_AFFECTEDROWS() == 1) {
+                               // Admin account saved
+                               $message = '{--ADMIN_ACCOUNT_SAVED--}';
+                       } else {
+                               // Passwords did not match
+                               $message = '{--ADMIN_ADMINS_ERROR_PASS_MISMATCH--}';
+                       }
                }
        } // END - foreach
 
        // Display message
        if (!empty($message)) {
-               displayMessage($message);
+               if ($displayMessage === true) {
+                       displayMessage($message);
+               } // END - if
        } // END - if
 
        // Remove cache file
        runFilterChain('post_form_submited', postRequestArray());
+
+       // Return message
+       return $message;
 }
 
 // Make admin accounts editable
@@ -442,6 +463,8 @@ function sendAdminsEmails ($subj, $template, $content, $userid) {
        // Check which admin shall receive this mail
        $result = SQL_QUERY_ESC("SELECT `admin_id` FROM `{?_MYSQL_PREFIX?}_admins_mails` WHERE `mail_template`='%s' ORDER BY `admin_id` ASC",
                array($template), __FUNCTION__, __LINE__);
+
+       // No entries found?
        if (SQL_HASZERONUMS($result)) {
                // Create new entry (to all admins)
                SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_admins_mails` (`admin_id`, `mail_template`) VALUES (0, '%s')",
@@ -640,9 +663,9 @@ function getAdminLastFailure ($adminId) {
        return $data['last_failure'];
 }
 
-// ---------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
 //                             Wrapper functions
-// ---------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
 
 // Wrapper function to check wether expert setting warning is enabled
 function isAdminsExpertWarningEnabled () {