Rewrites to use fake POST data
[mailer.git] / inc / modules / admin / admin-inc.php
index d762abd90d9b40b1784ce5b55ec335d2628b67b7..18f99003fc417a312f80e05394738a35b803b343 100644 (file)
@@ -97,7 +97,7 @@ function ifAdminLoginDataIsValid ($adminLogin, $adminPassword) {
                                // All fine
                                $ret = 'done';
                        } else {
-                               // Set status
+                               // Did not match!
                                $ret = 'password';
                        }
                } // END - if
@@ -787,6 +787,15 @@ function sendAdminBuildMails ($mode, $table, $content, $id, $subjectPart = '', $
 
 // Build a special template list
 function adminListBuilder ($listType, $IDs, $table, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $userid = 'userid') {
+       // $table and $idColumn must bove be arrays!
+       if (!is_array($table)) {
+               // $table is no array
+               debug_report_bug(__FUNCTION__, __LINE__, 'table[]=' . gettype($table) . '!=array');
+       } elseif (!is_array($idColumn)) {
+               // $idColumn is no array
+               debug_report_bug(__FUNCTION__, __LINE__, 'idColumn[]=' . gettype($idColumn) . '!=array');
+       }
+
        $OUT = '';
 
        // "Walk" through all entries
@@ -795,7 +804,7 @@ function adminListBuilder ($listType, $IDs, $table, $columns, $filterFunctions,
                $id = bigintval($id);
 
                // Get result from a given column array and table name
-               $result = SQL_RESULT_FROM_ARRAY($table, $columns, $idColumn, $id, __FUNCTION__, __LINE__);
+               $result = SQL_RESULT_FROM_ARRAY($table[0], $columns, $idColumn[0], $id, __FUNCTION__, __LINE__);
 
                // Is there one entry?
                if (SQL_NUMROWS($result) == 1) {
@@ -833,7 +842,7 @@ function adminListBuilder ($listType, $IDs, $table, $columns, $filterFunctions,
                        // Then list it
                        $OUT .= loadTemplate(sprintf("admin_%s_%s_row",
                                $listType,
-                               $table
+                               $table[0]
                                ), true, $content
                        );
                } // END - if
@@ -845,7 +854,7 @@ function adminListBuilder ($listType, $IDs, $table, $columns, $filterFunctions,
        // Load master template
        loadTemplate(sprintf("admin_%s_%s",
                $listType,
-               $table
+               $table[0]
                ), false, $OUT
        );
 }
@@ -1329,12 +1338,17 @@ function doResetAdminPassword ($login, $password) {
        // Generate hash (we already check for sql_patches in generateHash())
        $passHash = generateHash($password);
 
+       // Prepare fake POST data
+       $postData = array(
+               'login'    => array(getAdminId($login) => $login),
+               'password' => array(getAdminId($login) => $passHash),
+       );
+
        // Update database
-       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_admins` SET `password`='%s' WHERE `login`='%s' LIMIT 1",
-               array($passHash, $login), __FUNCTION__, __LINE__);
+       $message = adminsChangeAdminAccount($postData, '', false);
 
        // Run filters
-       runFilterChain('post_form_reset_pass', array('login' => $login, 'hash' => $passHash));
+       runFilterChain('post_form_reset_pass', array('login' => $login, 'hash' => $passHash, 'message' => $message));
 
        // Return output
        return '{--ADMIN_PASSWORD_RESET_DONE--}';